VC中實現非標準對話方塊窗體的實現

2021-09-05 14:07:20 字數 704 閱讀 2475

原作者姓名 張增強

介紹vc中實現自繪背景,任意形狀的對話方塊的實現。

讀者評分 7 評分次數 2

正文程式截面如下圖所示:

效果的實現可以通常通過兩個方法:

一、處理wm_print實現。

1  建立乙個基於對話方塊的exe工程demo,一切採用預設設定。

2  改變對話方塊資源:idd_demo_dlg,設定style風格的border為none。匯入背景需要的bmp資源,id命名為idb_backgnd。在cdemodlg的標頭檔案中增加乙個變數m_bmgbg;

3  在oninitdialog()函式中加入下面**載入資源:m_bmgbg.loadbitmap(idb_backgnd);

4  處理onpaint(),函式,實現背景的繪製。

void cdemodlg::onpaint()

else  // 以下為程式的處理部分

//    cdialog::onpaint();}}

5  響應滑鼠事件,實現非標題區域的拖動效果。

處理wm_nchittest事件。onnchittest(cpoint point) **如下:

uint csettopdlg::onnchittest(cpoint point)

這樣,乙個漂亮的如圖效果就這麼簡單實現了。

正文完

附件:介面demo demo.gif

Qt中的標準對話方塊(中)

一 顏色對話方塊 qcolordialog 構造顏色對話方塊物件 設定顏色對話方塊的相關屬性 初始顏色 獲取 處理 void widget colordialogbtn clicked 二 輸入對話方塊 qinputdialog 鍵盤輸入 void widget inputdialogbtn cli...

VC中對話方塊的「所有」控制項?

初學vc,接觸最多的自然是dialog based了。我知道每個對話方塊模版都是乙個控制項容器,既然是容器,就應該有經典的for each操作吧。比如,我如果想讓對話方塊中所有控制項都失效,那麼這個 所有 怎麼表示呢?怎麼程式設計實現呢?查cdialog類的msdn,貌似沒有這樣的成員函式可以得到乙...

在VC中複製對話方塊的方法

在vc中複製對話方塊的方法,複製同乙個工程中的對話方塊就不說了哈,那當然是ctrl c ctrl v了,下面說的是複製不對工程中對話方塊的辦法。方法1 把這個對話方塊的cpp.h檔案都copy過去,然後以文字方式開啟你的rc檔案,把其中與你的對話方塊相關的語句copy後放到另外乙個程式rc檔案中相應...