程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 不規則對話框的又一實現

不規則對話框的又一實現

編輯:關於VC++

代碼運行效果圖如下:

此不規則對話框的實現應用了一個重要的位圖對話框類——CBitmapDialog ,通過靈活運用,可以實現任意形狀的對話框。

一、CBitmapDialog 簡介:

CBitmapDialog從CDialog派生並封裝了根據位圖形成任意形狀對話框的功能,類的實現也非常簡單,主要是一些加載位圖、設置透明色等操作,最關鍵的函數是MakeWindowRgn, 它根據位圖生成所需的區域對象, 然後調用SetWindowRgn將窗口設置成需要的形狀,MakeWindowRgn函數的具體代碼請參考本文配套的代碼。

二、CBitmapDialog類的使用

下面介紹CBitmapDialog類的使用過程:

1.運行VC,建立基於對話框的應用程序 BitmapDlg。設置對話框的屬性,去掉邊框和標題欄。

2.插入位圖。(在插入->資源->選 Bitmap)

3.在CBitmapDialogDlg 的BOOL CBmpDlgDlg::OnInitDialog() 中添加如下代碼:

LoadBitmap(IDB_BITMAP1);//加載位圖
SetTransparent (TRUE);
SetTransColor (RGB(0,0,0));//去掉形狀的顏色設置
SetStaticTransparent (TRUE);
SetClickAnywhereMove (TRUE);//鼠標是否能拖動窗體。

4.將 CBitmapDialogDlg 的基類改為 CBitmapDialog,並將更改相應的消息映射。

請大家都來試一試吧!

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved