設定視窗最大(小)化是否有效及標題欄設定

2021-08-21 00:07:04 字數 2850 閱讀 8571

以下函式對於popup視窗有效,對於子視窗好像不行。

//最小化按鈕有效

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style) | ws_minimizebox ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//最小化按鈕無效

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style) &~ws_minimizebox ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//最大化按鈕有效

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style) | ws_maximizebox ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//最大化按鈕無效

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style) &~ws_maximizebox ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//關閉按鈕有效

::enablemenuitem(::getsystemmenu(m_hwnd,false),sc_close,mf_bycommand | mf_grayed);

//關閉按鈕無效

::enablemenuitem(::getsystemmenu(m_hwnd,false),sc_close,mf_bycommand | mf_enabled);

//工具欄視窗。在工作列上沒有程式顯示,需要新增在oninitdialog()裡

::setwindowlong(m_hwnd,gwl_exstyle,getwindowlong(m_hwnd,gwl_exstyle)

::setwindowpos(m_hwnd,null,0,0,0,0,swp_framechanged|swp_nomove|swp_nosize);

//新增標題欄

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style)

| ws_caption ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//取消標題欄

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style)

& ~ws_caption ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//取消標題欄,保留3d邊框,可調整視窗大小

::setwindowlong(m_hwnd,gwl_style, getwindowlong(m_hwnd,gwl_style)

& ~ws_caption | ws_thickframe ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);   //一定要加這句設定才會立即生效

//取消標題欄和3d邊框,保留乙個線條的細邊框,不能調整視窗大小

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style)

& ~ws_caption & ~ws_thickframe | ws_border ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

//如果有ws_ex_dlgmodalframe還要取消ws_ex_dlgmodalframe

// ::setwindowlong(m_hwnd,gwl_exstyle,getwindowlong(m_hwnd,gwl_exstyle)

//   & ~ws_ex_dlgmodalframe);

// ::setwindowpos(m_hwnd,null,0,0,0,0,swp_framechanged|swp_nomove|swp_nosize);

//取消所有邊框

::setwindowlong(m_hwnd,gwl_style,getwindowlong(m_hwnd,gwl_style)

& ~ws_caption & ~ws_thickframe ); 

::setwindowpos(m_hwnd,null,0,0,0,0,swp_nomove|swp_nosize|swp_framechanged);

// //如果有ws_ex_dlgmodalframe還要取消ws_ex_dlgmodalframe

// ::setwindowlong(m_hwnd,gwl_exstyle,getwindowlong(m_hwnd,gwl_exstyle)

//   & ~ws_ex_dlgmodalframe);

// ::setwindowpos(m_hwnd,null,0,0,0,0,swp_framechanged|swp_nomove|swp_nosize);

**:

gtk設定視窗最大最小化 設定工作簿視窗的大小?

1 開啟excel2010可以看到右下角小三角,拖住小三角移動,可以改變視窗的的大小 任意修改 那如何設定400 200的視窗呢?使用vba可以修改修改大小嗎?答案是肯定的。3 在模組1中輸入以下程式 public sub 設定工作簿視窗大小 dim wd as window dim mywstat...

MFC中設定視窗大小位置

第一種方法 使用setwindowpos函式 cwnd setwindowposbool setwindowpos const cwnd pwndinsertafter,int x,int y,int cx,int cy,uint nflags 返回值如果函式成功,則返回非零值 否則返回0。說明 呼...

Air改變視窗大小設定方式

目前程式在視窗普通大小和最大化的時候都是顯示5本圖書,在最大化狀態時檢視內容太單薄。我們想讓視窗最大化時顯示10本書,普通大小時顯示5本,並且讓程式只支援這兩種尺寸,禁止使用者隨意調整視窗大小。狀態調整只發生在第一屏,開啟bookpage.mxml檔案,先定義兩個狀態 normalsize 和 ma...