建立乙個非矩形按鈕

2021-05-01 11:54:15 字數 1033 閱讀 6684

//動態建立乙個按鈕

_hwndarrowbutton = createwindow(l"button",//視窗型別,為按鈕

null,

ws_visible |ws_popup | bs_ownerdraw,//按鈕樣式

428,66,50,50,//按鈕位置和大小

_hwnd,//父視窗控制代碼

(hmenu)id_arrow_up,//按鈕的資源id

g_hinstance,

null);

//設定此按鈕視窗的區域

setupregion(_hwndarrowbutton , idb_arrow, rgb(255,255,255) );

//設定區域函式實現如下(**於網路,有修改)

void setupregion(hwnd hwnd, int buttonid, colorref transcolor)

{hdc hdc;

hdc = getwindowdc(hwnd);

//建立與傳入dc相容的臨時dc

hdc memdc= ::createcompatibledc(hdc);

hbitmap holdmembmp = loadbitmap(g_hinstance, makeintresource(buttonid));

//將位圖選入臨時dc

selectobject(memdc,holdmembmp);

//建立總的窗體區域,初始region為0

hrgn wndrgn = ::createrectrgn(0,0,0,0);

//取得位圖引數,這裡要用到位圖的長和寬 

bitmap bit;

getobject(holdmembmp,sizeof(bitmap),&bit);

int y;

for(y=0;y

引數1:被設定按鈕(視窗)的控制代碼

引數3:點陣圖中需要鏤空掉的顏色,本例中使用的是rgb(255,255,255)白色,也就是說矩形中不需要的部分填充成一種顏色,該函式就會忽略掉該顏色的區域來設定視窗。

C 建立非矩形窗體

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

點選乙個按鈕,彈出乙個視窗

在calculator視窗的button1按鈕執行呼叫乙個mycalc類的視窗。void ccalculatordlg onbnclickedbutton1 幾個函式 1.getdlgitem dlg 對話窗,乙個控制項。根據乙個對話窗或乙個控制項的id,返回乙個指向這個對話窗或控制項的物件的指標。...

WPF 非矩形視窗的建立

第 一 視窗的allowstransparency設定為true 第二 視窗的background設定為transparent 第三 視窗的windowstyle設定為none 第四 視窗內的grid用clip或者border設定為需要的形狀 示例 利用clip實現圓角視窗 1 window x c...