VC 對於自定義訊息處理

2021-05-11 09:09:45 字數 993 閱讀 6770

無模式對話方塊與有模式對話方塊不同的是在建立後其他視窗都可以繼續接收使用者輸入,因此無模式對話方塊有些類似乙個彈出視窗。建立無模式對話方塊需要呼叫

bool cdialog::create( uint nidtemplate, cwnd* pparentwnd = null );之後還需要呼叫

bool cdialog::showwindow( sw_show);進行顯示,否則無模式對話方塊將是不可見的。相關**如下:

void cyourview::onopendlg(void)

在上面的**中我們新生成了乙個對話方塊物件,而且在退出函式時並沒有銷毀該物件。因為如果此時銷毀該物件(物件被銷毀時視窗同時被銷毀),而此時對話方塊還在顯示就會出現錯誤。那麼這就提出了乙個問題:什麼時候銷毀該物件。我時常使用的方法有兩個:

同樣無模式對話方塊的另乙個作用還可以用來在使用者在對話方塊中的輸入改變時可以及時的反映到其他視窗。下面的**演示了在對話方塊中輸入一段文字,然後將其更新到檢視的顯示區域中,這同樣也是利用了訊息進行通知和資料傳遞。

/*在對話方塊中取出資料,並向其他視窗傳送訊息和資料,將資料指標作為乙個引數傳送*/

void ctestdlg2::oncommbtn()

/*在訊息接收視窗中*/

/*對映訊息處理函式*/

on_message(wm_dlg_notify,ondlgnotifymsg)

/*在檢視中繪製出字串 m_szout*/

void cmy53_s1view::ondraw(cdc* pdc)

/*處理通知訊息,儲存資訊並更新顯示*/

long cmy53_s1view::ondlgnotifymsg(wparam wp,lparam lp)

此外這種用法利用訊息傳遞資料的方法對有模式對話方塊和其他的視窗間通訊也一樣有效

VC自定義訊息

示例 主對話方塊a edit控制項 副對話方塊b edit控制項 將b中edit內容在其銷毀後,顯示在a中edit中 1 自定義訊息 define wm mymsg wm user 100 2 b cpp afxgetmainwnd sendmessage wm mymsg,wparam 0,lpa...

VC中自定義訊息的處理

由於在實際的專案中一直沒用用過自定義訊息完成某功能,所以雖然以前看書了,知道怎麼做但是早還給課本了。今天想實現這樣乙個功能,查了查資料記錄下來。另外vcbase上有個簡單的示例。開始時要明白windows訊息投遞有2種方式 postmessage 和sendmessage的區別主要在於是否等待其他程...

VC 如何處理自定義訊息

在sdk程式設計中,對訊息的獲取與分發是通過訊息迴圈來完成。而在mfc程式設計中則是通過採取訊息對映的方式對其進行處理。相比而言,這樣的處理方式要簡單得多,這也是符合物件導向程式設計中盡可能隱含實現細節的原則。乙個完整mfc訊息對映包括對訊息處理函式的原型宣告 實現以及存在於訊息對映中的訊息入口。一...