因為在例子程式中 mainwindow 是唯一乙個訪問該字串的類,所以沒有必要使用屬性機制。有了這兩個新的資料成員,你要做的只是 改寫 wm_gettext 處理例程,返回子視窗最大化狀態以及常態時的標題文字。那麼如何改寫 wm_gettext 處理例程呢?
windows.forms 提供了一些 處理 wm_*** 訊息的虛函式,如 onresize/wm_size等,但是恰恰缺少與 wm_gettext 相關東東(ongettext/wm_gettext)。不要擔心,沒有虛函式,我們總是可以改寫包羅永珍的 wndproc 處理例程。為此必須知道所處理的訊息id,也就是 wm_gettext 的訊息 id = 0x000d,有人會問,你是怎麼知道這個訊息的 id 是 0x000d 啊,很簡單,一種方法是執行 spy 獲取,另一種方法是直接查詢windows sdk 中的 winuser.h 標頭檔案。一旦你能深入到 wndproc 這一層次編寫**,那麼你基本上能用 c 語言寫程式了,因為 win32 api 和其它語言之間所有東東通過 wparams 和 lparams 引數傳遞的,包括字串在內。對於 wm_gettext 來說,message.lparam 是指向 char* 的指標,message.wparam 是該指標長度。也就是說你必須完成將文字串拷貝到呼叫者的緩衝裡。好在這並不是太難,下面是程式**:
public class mainwindow : system.windows.forms.form
base.wndproc(ref m);
}...... // rest of mainwindow unchanged from scribble sample
}經過上述的改動,現在執行程式,當mdi子視窗最大化時,主視窗標題顯示的文字是「window is now maximized」,如圖一所示,
c 如何實現子視窗關閉父視窗也關閉
其實是視窗間通訊的問題,在form1上開啟form2 form2 關閉時關閉form1 實現方法 在子視窗form2中宣告事件 public delegate void childclose public event childclose closefather 然後在它的關閉事件中觸發本事件 pr...
c 如何實現子視窗關閉父視窗也關閉
其實是視窗間通訊的問題,在form1上開啟form2 form2 關閉時關閉form1 實現方法 在子視窗form2中宣告事件 public delegate void childclose public event childclose closefather 然後在它的關閉事件中觸發本事件 pr...
如何處理iframe 子視窗重新整理跳轉首頁
參考作者文章 今天用iframe寫了個頁面,在子視窗重新整理時頁面會跳轉,記錄一下,主要借助的是錨點 監聽錨點的變化,設定iframe的位址 window.onhashchange function a標籤加上onclick事件 傳入引數 function loadiframe url 當頁面載入時...