如何有效的使用對話方塊之二

2021-04-12 21:05:59 字數 2221 閱讀 9922

如何有效的使用對話方塊之二

譯者:徐景周

(原作:nishant s )

本文是《如何有效使用對話方塊》

一文的繼續.

1. 如何有效地使初始視窗不顯示

當我們想讓視窗初始時不顯示時,通常會用showwindow(sw_hide) ,但實際上還是在啟動是可以看到視窗一閃而過的痕跡。所以,可以使用下面的方法來實現它:

(1.1)先在建構函式中設定布樂變數 visible值為false.

visible = false;
(1.2)過載 wm_windowposchanging,並新增下面**:
void ctest_deletedlg::onwindowposchanging(windowpos far* lpwndpos)
(1.3)然後設布林visible變數值為true,並在要顯示視窗時,再用showwindow(sw_show)既可。
visible = true;showwindow(sw_show);
2. 對話方塊的全屏顯示

對話方塊的全屏顯示可以在oninitdialog()中用 setwindowpos 和 hwnd_topmost 來實現對話方塊的重新大小。

bool cfullscrdlgdlg::oninitdialog()
3. 如何在2k/xp下使視窗獲取焦點

在2k/xp下我們可以用 attachthreadinput 和setforegroundwindow來有效的獲取焦點。

//捕捉並設定當前焦點視窗為我們的視窗attachthreadinput(    getwindowthreadprocessid(        ::getforegroundwindow(),null),    getcurrentthreadid(),true);//置我們的為焦點視窗setforegroundwindow();setfocus(); //釋放threadattachthreadinput(    getwindowthreadprocessid(        ::getforegroundwindow(),null),    getcurrentthreadid(),false);
4. 使你的對話方塊位於最頂端

可以直接在 oninitdialog()中用setwindowpos來實現。

setwindowpos(&this->wndtopmost,0,0,0,0,swp_nomove|swp_nosize);
5. 如何動態放大/縮小對話方塊

還是可以用setwindowpos或movewindow來實現它。

void ctest_deletedlg::onmake**all() void ctest_deletedlg::onexpand()
或:

6. 如何讓對話方塊回到螢幕中來

當對話方塊被拖離螢幕時,可用下面**使其回到螢幕中。

sendmessage(dm_reposition);
注:它必須是頂端視窗且不是child視窗。

7. 如何給對話方塊新增或去掉最大/最小化按鈕

在oncreate()或oninitdialog() 改變其顯示風格既可。

int ctest_deletedlg::oncreate(lpcreatestruct lpcreatestruct)
或用:
modifystyle (null, ws_maximizebox);
8. 改變滑鼠指標

可以在onsetcursor中實現.

9. 改變對話方塊的前景和背景色

可以在initinstance()中實現。

//紅色背景、綠色前景setdialogbkcolor(rgb(255,0,0),rgb(0,255,0));
10. 在任務條上不顯示圖示

11. 加入上、下文幫助

在 oninitdialog 修改顯示風格,加入上、下文hlp幫助顯示.

bool helpdialog::oninitdialog()
過載onhelpinfo(...),用顯示相關幫助資訊
bool helpdialog::onhelpinfo(helpinfo* phelpinfo) }

Qt學習之二 建立對話方塊

1 深入介紹訊號和槽 槽和普通的 c 成員函式幾乎是一樣的 可以是虛函式,可以被過載 可以是公有的 保護的或者私有的。槽還可以和訊號連線在一起,在這種情況下,每當發射這個訊號的時候,就會自動呼叫這個槽。connect sender,signal signal receiver,slot slot 這...

對話方塊 如何製作屬性頁對話方塊

1 加入屬性頁 增加對話方塊資源,修改以下屬性 style child border thin system menu false 2 為每個屬性頁生成類,基類為 cpropertypage 3 生成屬性對話方塊類,基類為 cpropertysheet 在屬性對話方塊類標頭檔案中增加類似如下內容 i...

對話方塊的使用

1 對話方塊的特性 對話總是依賴父視窗 jframe 當父視窗關閉,對話方塊也被關閉,父視窗最小化,對話方塊隨之最小化。對話方塊分模態和非模態兩類。2 使用joptionpane建立對話方塊 通過該類的show dialog方法,如果是在jinternalframe中使用,用相應的showinter...