I had one hell of a time trying to manipulate the default floatingpane close behaviour. Then finally ended up recreating the floating pane every time i required it. Here's an extract if it helps.
createMeasurement: function () {
console.log("Entered Method: " + arguments.callee.nom);
// On show move the top position by height of toolbar. This needs to be done if using API version 3.0 or above. and not needed for API 2.8 or below.
// Same has to be done for left position using contents pane width, if contents panel is left oriented.
this.deleteWidgetsRecursive("measurementPanel");
var holder = new dojo.create('div', {
id: 'measurementPanelHolder'
});
this._floatingContainer.containerNode.appendChild(holder);
this._measurementPanel = new dojox.layout.FloatingPane({
id: "measurementPanel",
title: "Measurement",
closable: true,
resizable: false,
dockable: false,
isLayoutContainer: true,
doLayout: true,
dockTo: this._dock,
style: 'top:25px;left:0px;width:210px;height:120px;z-index:101;'
}, dojo.byId('measurementPanelHolder')).placeAt(this._floatingContainer.containerNode, "last");
this._measurementPanel.containerNode.appendChild(new dojo.create('div', {
id: 'measurementDiv',
style: 'font-family: tahoma; font-size: medium;'
}
)
);
//dojo.connect(this._measurementPanel, "onShow", dojo.hitch(this, function () { this._measurementPanel.isVisible = true; }));
this._measurementWidget = new esri.dijit.Measurement({
map: this._map,
defaultAreaUnit: esri.Units.SQUARE_KILOMETERS,
defaultLengthUnit: esri.Units.KILOMETERS
}, dojo.byId("measurementDiv")).placeAt(this._measurementPanel.containerNode);
dojo.connect(this._measurementWidget.area, "onClick", dojo.hitch(this, function () {
this._map.setMapCursor('url(cursors/Measure_Area.cur), auto');
}));
dojo.connect(this._measurementWidget.distance, "onClick", dojo.hitch(this, function () {
this._map.setMapCursor('url(cursors/Measure_Distance.cur), auto');
}));
dojo.connect(this._measurementWidget.location, "onClick", dojo.hitch(this, function () {
this._map.setMapCursor('url(cursors/Measure_Point.cur), auto');
}));
dojo.connect(this._measurementWidget, "onMeasureEnd", dojo.hitch(this, function(activeTool,geometry){
if (activeTool === "location") {
this.setCursorToActiveTool();
}
}));
dojo.connect(this._measurementPanel.closeNode, "onclick", dojo.hitch(this, function(){
this.setCursorToActiveTool();
}));
this._measurementPanel.startup();
this._measurementWidget.startup();
},