MFC程式設計 彈出伺服器訊息推送對話方塊

2021-07-06 09:10:15 字數 1370 閱讀 8477

作業系統: windows7/windows10 64位

執行環境: visual studio 10

檔案編碼: unicode

在資源管理器中新插入乙個對話方塊,然後建立乙個對話方塊類。

注意:在visual studio 10在新插入的子對話方塊中找不到oninitdialog()函式,在對話方塊的屬性訊息中也找不到wm_initdialog訊息,必須要手動(手工寫**)過載虛函式oninitdialog()。

為什麼需要oninitdialog()

函式:建構函式是在c++類建立時首先執行的函式,主要是針對c++類物件的成員變數的初始化,是內在的。而oninitdialog是主要針對與類物件相關的windows窗體控制項初始化問題,是外在的。可以看出,建構函式是在窗體建立之前進行的,而oninitdialog是在窗體建立完成後進行的。

oncreate是對話方塊在被建立時的訊息,這時候對話方塊還沒有被顯示在螢幕上。而且對話方塊中的控制項都還沒有被建立。而oninitdialog()是對話方塊建立完成,即對話方塊上的控制項也全部被建立後第一次啟用顯示在螢幕上產生的訊息。在此時可以對話方塊中的控制項進行初始化操作。

oninitj是初始化的意思,dialog指的是對話方塊的意思,它們合起來就是主對話方塊的初始化函式。

oninitdialog是主要針對與類物件相關的windows窗體控制項初始化問題,是外在的。可以看出,建構函式是在窗體建立之前進行的,而oninitdialog是在窗體建立完成後進行的。oncreate是對話方塊在被建立時的訊息,這時候對話方塊還沒有被顯示在螢幕上。

而且對話方塊中的控制項都還沒有被建立。而oninitdialog()是對話方塊建立完成,即對話方塊上的控制項也全部被建立後第一次啟用顯示在螢幕上產生的訊息。在此時可以對話方塊中的控制項進行初始化操作。

彈出推送對話方塊,類似於qq訊息彈出框,即在桌面右下角彈出訊息框。

// cserverpushinfo 訊息處理程式

bool cserverpushinfo::oninitdialog()

void cserverpushinfo::ontimer(uint_ptr nidevent)

cdialogex::ontimer(nidevent);

}

使用:

//推送對話方塊

cserverpushinfo *dlg;

dlg = new cserverpushinfo(_t("推送訊息內容"));

dlg->create(idd_serverpushinfo_dialog, getdesktopwindow());//第二個引數不要為null,必須是getdesktopwindow()

dlg->showwindow(sw_shownormal);

伺服器訊息推送

客戶端定時向伺服器傳送ajax請求,伺服器接到請求後馬上返回響應資訊並關閉連線 優點 後端程式編寫比較容易 缺點 求中有大半是無用,浪費頻寬和伺服器資源 客戶端向伺服器傳送ajax請求,伺服器接到請求後hold住連線,直到有新訊息才返回響應資訊並關閉連線,客戶端處理完響應資訊後再向伺服器傳送新的請求...

伺服器推送 伺服器怎麼向客戶端推送訊息?

最近內部使用的web管理後台系統中新增了乙個報銷單審批的功能,由員工發起報銷申請,然後首先直屬主管進行審批,主管審批通過後流程就到了經理那裡,經理審批通過後流程再轉到財務那裡。本來這功能無非就是些crud的功能,沒啥難度,但是架不住產品愛搞事啊!產品提出了乙個需求 每個審批操作都需要給下一級處理人主...

天氣推送伺服器

1 主要功能 使用者通過天氣推送伺服器暴露出來的介面進行註冊,註冊完畢之後使用者可以新增一些自己的親朋好友的資訊。每天定時爬取全國的天氣,然後推送給使用者的親朋好友。2 伺服器 伺服器使用的是乙個協程版本的web伺服器,支援get和post方法,底層用cgi方法處理帶引數的請求。伺服器對外暴露兩個介...