Windows窗口樣式

windows樣式有很多種,不同的windows,windows控件接受不同的樣式。如Combo box接受下以樣式:
WS_CHILD   Always
WS_VISIBLE   Usually
WS_DISABLED   Rarely
WS_VSCROLL   To add vertical scrolling for the list box in the combo box
WS_HSCROLL   To add horizontal scrolling for the list box in the combo box
WS_GROUP   To group controls
WS_TABSTOP   To include the combo box in the tabbing order
並且每種窗體都有自己特定的樣式,如CStatic中有SS_NOTIFY:
SS_NOTIFY   Sends the parent window STN_CLICKED, STN_DBLCLK, STN_DISABLE, and STN_ENABLE notification messages when the user clicks or double-clicks the control.


常見窗口樣式:
WS_POPUP - 彈出式窗口(不能與WS_CHILDWINDOW樣式同時使用)
WS_CHILDWINDOW - 子窗口(不能與WS_POPUP合用)
WS_MINIMIZE - 最小化狀態
WS_VISIBLE - 可見狀態
WS_DISABLED - 不可用狀態
WS_CLIPSIBLINGS - 使窗口排除子窗口之間的相對區域
WS_CLIPCHILDREN - 當在父窗口內繪圖時,排除子窗口區域
WS_MAXIMIZE - 具有最大化按鈕,須指定WS_SYSTEM樣式
WS_CAPTION - 有標題框和邊框(和WS_TILED樣式相同)
WS_BORDER - 有單邊框
WS_DLGFRAME - 帶對話框邊框樣式,不帶標題框
WS_VSCROLL - 有垂直滾動條
WS_HSCROLL - 有水平滾動條
WS_SYSMENU - 標題框上帶有窗口菜單(須指定WS_CAPTION樣式)
WS_THICKFRAME - 有可調邊框(與WS_SIZEBOX樣式相同)
WS_GROUP - 組樣式,每個組的第一個控件具有WS_TABSTOP樣式
WS_TABSTOP - 可接受TAB鍵焦點
WS_MINIMIZEBOX - 有最小化按鈕
WS_MAXIMIZEBOX - 有最大化按鈕
WS_OVERLAPPEDWINDOW - 具有層疊,標題框,系統菜單,可調邊框,系統按鈕
WS_POPUPWINDOW - 具有單邊框,彈出式,系統菜單樣式

/* 窗口擴展樣式參考列表:
WS_EX_DLGMODALFRAME - 帶雙層邊框
WS_EX_NOPARENTNOTIFY - 創建/銷燬時不通知父窗口
WS_EX_TOPMOST - 窗口置頂(停留在所有非最高層窗口的上面)
WS_EX_ACCEPTFILES - 可接受文件拖放
WS_EX_TRANSPARENT - 透明樣式,在同屬窗口已重畫時該窗口才可重畫
WS_EX_MDICHILD - MDI子窗口樣式
WS_EX_TOOLWINDOW - 工具條窗口樣式
WS_EX_WINDOWEDGE - 帶凸起邊緣的邊框
WS_EX_CLIENTEDGE - 帶陰影的邊緣
WS_EX_CONTEXTHELP - 有上下文幫助樣式,標題欄包含一個問號標誌
WS_EX_RIGHT - 右對齊
WS_EX_RTLREADING - 窗口文本從右到左顯示
WS_EX_LEFTSCROLLBAR - 垂直滾動條在窗口左邊界
WS_EX_CONTROLPARENT - 允許用戶使用TAB鍵在窗口的子窗口間搜索
WS_EX_STATICEDGE - 當窗口爲不可用狀態時創建一個三維邊緣
WS_EX_APPWINDOW - 當窗口可見時將一個頂層窗口放置在任務欄上
WS_EX_OVERLAPPEDWINDOW - 帶凸起邊緣的邊框,邊緣有陰影
WS_EX_PALETTEWINDOW - 帶立體邊框,有工具條窗口樣式,窗口在頂層
WS_EX_LAYERED - 分層或透明窗口,該樣式可使用混合特效
WS_EX_NOINHERITLAYOUT - 子控件不繼承窗體或控件的佈局
WS_EX_LAYOUTRTL - 窗體或控件將具有從右向左的佈局(因而會被鏡像)
WS_EX_COMPOSITED - 用雙緩衝從下到上繪製窗口的所有子孫(WinXP以上)
WS_EX_NOACTIVATE - 處於頂層但不激活
*/
void CMyDlg::OnCreateExtendedControl()
{
   // m_pWndStaticEx is a CWnd* member of CMyDlg
   m_pWndStaticEx = new CStatic;
   m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
      _T("STATIC"), _T("Hi"),
      WS_CHILD | WS_TABSTOP | WS_VISIBLE,
      5, 5, 30, 30, m_hWnd, (HMENU)2345);
}


/* 控件樣式參考列表:
ES_LEFT - 左對齊
ES_CENTER - 居中對齊
ES_RIGHT - 右對齊
ES_MULTILINE - 多行
ES_UPPERCASE - 全部大寫
ES_LOWERCASE - 全部小寫
ES_PASSWORD - 密碼框
ES_AUTOVSCROLL - 自動垂直滾動
ES_AUTOHSCROLL - 自動水平滾動
ES_NOHIDESEL - 始終顯示選中部分
ES_OEMCONVERT - 允許ANSI和OEM互相轉換
ES_READONLY - 只讀
ES_WANTRETURN - 可接受回車換行
ES_NUMBER - 只接受數字輸入

發佈了22 篇原創文章 · 獲贊 25 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章