模態對話方塊與非模態對話方塊

2021-09-16 13:12:25 字數 1955 閱讀 3553

建立對話方塊 

case id_dialog_text:

dialogbox(hinst, makeintresource(idd_textbox), hwnd,textset);

break; //建立模態對話方塊

case id_dialog_tcolor:

dhwnd = createdialog(hinst, makeintresource(idd_dialog_tcolor), hwnd, textcolor);

showwindow(dhwnd,sw_show); //建立非模態對話方塊

break;

textset 函式

其中getdlgitemtext(hdlg, idc_edittext,szdialogtext, 64); 函式可從對話方塊的編輯框裡取出使用者填寫的字串到szdialogtext中,64為其長度。

wcscpy_s(szbuffer,szdialogtext); 用於寬字元的賦值。

setdlgitemtext(hdlg, idc_edittext, szbuffer); 在編輯框裡顯示szbuffer。

setfocus(getdlgitem(hdlg, idc_edittext)); 設定焦點到指定編輯框idc_edittext。

senddlgitemmessage(hdlg, idc_edittext,em_setsel, 0, -1l);  編輯框內容全選。

int_ptr callback textset(hwnd hdlg, uint message, wparam wparam, lparam lparam)

break; //break需加上,否則會在上switch內

case wm_showwindow:

setdlgitemtext(hdlg, idc_edittext, szbuffer);

setfocus(getdlgitem(hdlg, idc_edittext));

senddlgitemmessage(hdlg, idc_edittext,em_setsel, 0, -1l); //全選

break; }

return (int_ptr)false;

}

text color 函式

需要注意的是,非模態對話方塊的tab鍵使用需要在訊息處理額外設定。

while (getmessage(&msg, nullptr, 0, 0))}}

int_ptr callback textcolor(hwnd hdlg, uint message, wparam wparam, lparam lparam)

break;

case wm_showwindow:

setfocus(getdlgitem(hdlg, idc_editred));

setdlgitemint(hdlg, idc_editred, rnum, false);

setdlgitemint(hdlg, idc_editgreen, gnum, false);

setdlgitemint(hdlg, idc_editblue, bnum, false);

senddlgitemmessage(hdlg, idc_editred, em_setsel, 0, -1l);

senddlgitemmessage(hdlg, idc_editgreen, em_setsel, 0, -1l);

senddlgitemmessage(hdlg, idc_editblue, em_setsel, 0, -1l);

break;

} return (int_ptr)false;

}

輸入框可設定指定輸入型別,如只輸入數字,由edit框的properties中找到number選項,選為true。

模態對話方塊與非模態對話方塊

1.對話方塊分類 按工作方式不同,可將對話方塊分成兩類 模態對話方塊 modal 在關閉模態對話方塊之前,程式不能進行其他工作 如一般的 開啟檔案 對話方塊 非模態對話方塊 modeless 非模態對話方塊開啟後,程式仍然能夠進行其他工作 如一般的 查詢與替換 對話方塊 2.對話方塊建立 模態對話方...

模態對話方塊和非模態對話方塊

模態對話方塊和非模態對話方塊的區別 在這裡我就說的比較通俗易懂了,就是當你開啟乙個模態對話方塊時,你的焦點不能轉移到程式的其他視窗上,也就是你只能先響應模態對話方塊,才能進行成下面的操作。而非模態對話方塊則相反,你可以不用管它,照常能夠將其他視窗啟用。建立模態對話方塊,主要是應用對話方塊的domod...

模態對話方塊和非模態對話方塊

模態對話方塊 關閉才能返回,非模態 不關閉就能返回 在資源裡新建立二個對話方塊 為新的對話方塊建立乙個類 在最原始的對話方塊函式的標頭檔案將上述兩個新新增的標頭檔案加進去,對模態按鈕進行程式設計 void cdemo11dlg onbnclickedbutton1 對非模態按鈕進行程式設計 void...