如何獲得視窗控制代碼(HWND )和改變視窗屬性

2021-05-18 15:32:44 字數 1377 閱讀 6335

1、 對於乙個視窗如何進行操作呢,首先要得到其使用控制代碼,我們可以用findwindow()函式來獲取當前視窗控制代碼,具體使用如下:

hwnd hfig = ::findwindow(null,hwnd);

如果得到找到,則返回視窗的控制代碼,否則返回null。 當然我們可以使用 setwindowpos(hwnd hwnd, hwnd hwndisertafter, int x, int y, int cx, int cy , uint uflags) 改變視窗的大小和位置,uflags是標誌視窗的顯示屬性,具體值可以是swp_nomove 、swp_nozorder 、swp_noactivate 、swp_framechanged等。 具體的呼叫例項如下:

hwnd hfig = ::findwindow(null,"fig no. 1"); //找到視窗,並返回視窗控制代碼

if(hfig == null) // 獲取繪圖區域的位置和大小

rect plotrec;

cwnd *plotarea = getdlgitem(idc_plotarea); // 獲取繪圖區域指標

plotarea->getwindowrect(&plotrec); // 將繪圖區域矩形賦給 定義矩形

long width = plotrec.right - plotrec.left; long height = plotrec.bottom - plotrec.top; // 獲得繪圖區域的寬和高

// 設定figure視窗為繪圖區域視窗的子視窗並調整其位置

::setparent(hfig,plotarea->getsafehwnd()); // 設定繪圖區域視窗為 figure視窗的父視窗

::setwindowpos(hfig,null,1,1,width,height,swp_nozorder | swp_noactivate); // 設定繪圖視窗的大小和位置

// 設定視窗可見

setvisible(h_a,mwarray("on"));

// 進入視窗等待狀態

bwait = 1; mlfhgwaitforfigurestodie();

2、當然你想改變視窗屬性的話,還可以增加以下函式來改變視窗的屬性

long lstyle. = ::getwindowlong(hfig,gwl_style);

::setwindowlong(hfig,gwl_style,lstyle. & (~ws_caption) & (~ws_thickframe));

::setwindowpos(hfig,null,0,0,0,0,swp_nomove | swp_nozorder | swp_noactivate | swp_framechanged);

就寫到這吧,其他的學會了再統一以乙個例項的形式給出。

如何獲得視窗控制代碼(HWND )和改變視窗屬性

1 對於乙個視窗如何進行操作呢,首先要得到其使用控制代碼,我們可以用findwindow 函式來獲取當前視窗控制代碼,具體使用如下 hwnd hfig findwindow null,hwnd 如果得到找到,則返回視窗的控制代碼,否則返回null。當然我們可以使用 setwindowpos hwnd...

如何獲得視窗控制代碼(HWND )和改變視窗屬性

1 對於乙個視窗如何進行操作呢,首先要得到其使用控制代碼,我們可以用findwindow 函式來獲取當前視窗控制代碼,具體使用如下 hwnd hfig findwindow null,hwnd 如果得到找到,則返回視窗的控制代碼,否則返回null。當然我們可以使用 setwindowpos hwnd...

如何獲得視窗控制代碼(HWND )和改變視窗屬性

1 對於乙個視窗如何進行操作呢,首先要得到其使用控制代碼,我們可以用findwindow 函式來獲取當前視窗控制代碼,具體使用如下 hwnd hfig findwindow null,hwnd 如果得到找到,則返回視窗的控制代碼,否則返回null。當然我們可以使用 setwindowpos hwnd...