日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【MFC】Windows样式

發布時間:2024/4/24 windows 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MFC】Windows样式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 概述
    • 02. Windows常用樣式
    • 03. Windows樣式示例
    • 04. Windows位置
    • 05. Windows大小
    • 06. Windows尺寸
    • 07. Windows父窗口
    • 08. 附錄

01. 概述

Windows樣式是控制窗口外觀,邊框,最小化或最大化狀態或其他調整大小等功能的特征。

02. Windows常用樣式

常見樣式

WS_BORDER 創建一個帶邊框的窗口.WS_CAPTION 創建一個具有標題的窗口bar(暗示WS_BORDER樣式).不能與WS_DLGFRAME樣式一起使用.WS_CHILD 創建子窗口.不能與WS_POPUP樣式一起使用.WS_CHILDWINDOW 與WS_CHILD風格相同.WS_CLIPCHILDREN 在父窗口中繪制時,排除子窗口占用的區域.在創建父窗口時使用.WS_CLIPSIBLINGS 相對于彼此剪輯子窗口;也就是說,當特定子窗口接收到繪制消息時,WS_CLIPSIBLINGS樣式會剪切要更新的子窗口區域之外的所有其他重疊子窗口. (如果未給出WS_CLIPSIBLINGS且子窗口重疊,則在子窗口的客戶區域內繪制時,可以在相鄰子窗口的客戶區域內繪制.)僅用于WS_CHILD樣式.WS_DISABLED 創建一個最初禁用的窗口.WS_DLGFRAME 創建一個帶雙邊框的窗口但沒有標題.WS_GROUP 指定一組控件的第一個控件,用戶可以使用箭頭鍵從一個控件移動到另一個控件.在第一個控件之后使用WS_GROUP樣式定義的所有控件都屬于同一個組.具有WS_GROUP樣式的下一個控件將啟動下一個組(即,一個組在下一個組開始的地方結束).WS_HSCROLL 創建一個水平的窗口滾動條.WS_ICONIC 創建一個最初最小化的窗口.與WS_MINIMIZE樣式相同.WS_MAXIMIZE 創建一個最大尺寸的窗口.WS_MAXIMIZEBOX 創建一個具有最大化按鈕的窗口.WS_MINIMIZE 創建一個最初最小化的窗口.僅用于WS_OVERLAPPED樣式.WS_MINIMIZEBOX 創建一個具有最小化按鈕的窗口.WS_OVERLAPPED 創建重疊窗口.重疊窗口通常有標題和邊框.WS_OVERLAPPED窗口 使用WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU,WS_THICKFRAME,WS_MINIMIZEBOX和WS_MAXIMIZEBOX樣式創建重疊窗口.WS_POPUP 創建一個彈出窗口.不能與WS_CHILD樣式一起使用.WS_POPUPWINDOW 創建一個包含WS_BORDER,WS_POPUP和WS_SYSMENU樣式的彈出窗口. WS_CAPTION樣式必須與WS_POPUPWINDOW樣式組合才能使Control菜單可見.WS_SIZEBOX 創建一個具有大小調整邊框的窗口.與WS_THICKFRAME樣式相同.WS_SYSMENU 創建一個窗口,其標題欄中有一個控制菜單框.僅用于帶標題欄的窗口.WS_TABSTOP 指定用戶可以使用TAB鍵移動的任意數量的控件之一. TAB鍵將用戶移動到WS_TABSTOP樣式指定的下一個控件.WS_THICKFRAME 創建一個帶有粗框的窗口,可用于調整窗口大小.WS_TILED 創建重疊窗口.重疊窗口具有標題欄和邊框.與WS_OVERLAPPED樣式相同.WS_TILEDWINDOW 使用WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU,WS_THICKFRAME,WS_MINIMIZEBOX和WS_MAXIMIZEBOX樣式創建重疊窗口.與WS_OVERLAPPEDWINDOW樣式相同.WS_VISIBLE 創建一個最初可見的窗口.WS_VSCROLL 創建一個具有垂直滾動條的窗口.

溫馨提示

更多Windows樣式請參考MSDN相關文檔

03. Windows樣式示例

程序示例一:

#include "afxwin.h"class MyFrame:public CFrameWnd {public:MyFrame(){//WS_VISIBLE 創建一個最初可見的窗口//WS_OVERLAPPED 創建重疊窗口.重疊窗口通常有標題和邊框Create(NULL, TEXT("MFC TEST"), WS_VISIBLE | WS_OVERLAPPED);} };class Test:public CWinApp {BOOL InitInstance(){MyFrame *frame = new MyFrame();m_pMainWnd = frame;frame->ShowWindow(SW_NORMAL);frame->UpdateWindow();return TRUE;} };Test test;

執行結果

04. Windows位置

查找顯示在監視器,計算機使用類似于笛卡兒的坐標系,但原點位于屏幕的左上角.使用此坐標系,任何點都可以通過它與水平和垂直軸屏幕左上角的距離來定位.

Win32庫提供了一個名為POINT的結構,定義如下 :

typedef struct tagPOINT {LONG x;LONG y; } POINT;CPoint(); CPoint(int X, int Y);
  • 'x’成員變量是從屏幕左邊框開始的距離點.
  • 'y’變量表示從屏幕頂部邊框到該點的距離.
  • 除了Win32的POINT結構外,Microsoft基礎類(MFC)庫還提供了CPoint類.
  • 這提供了相同的功能作為POINT結構.作為C ++類,它添加了定位點所需的更多功能.它提供了兩個構造函數.

05. Windows大小

當一個點用于在屏幕上定位一個對象時,每個窗口都有一個大小.大小提供了與對象相關的兩個度量.

  • 對象的寬度.
  • 對象的高度.

Win32庫使用SIZE結構定義如下 :

typedef struct tagSIZE {int cx;int cy; } SIZE;

除了Win32的SIZE結構外,MFC還提供了CSize類.此類具有與SIZE相同的功能,但添加了C ++類的功能.它提供了五個構造函數,允許您以您選擇的任何方式創建一個大小變量.

CSize(); CSize(int initCX, int initCY); CSize(SIZE initSize); CSize(POINT initPt); CSize(DWORD dwSize);

06. Windows尺寸

當窗口顯示時,可以通過其屏幕上顯示器邊框的位置來識別屏幕。窗口也可以通過其寬度和高度來識別。這些特性由**Create()**方法的rect參數指定或控制。此參數是可以通過Win32 RECT結構創建的矩形。

typedef struct _RECT {LONG left;LONG top;LONG right;LONG bottom; } RECT, *PRECT;

除了Win32的RECT結構之外,MFC還提供了具有以下構造函數的CRect類:

CRect(); CRect(int l, int t, int r, int b); CRect(const RECT& srcRect); CRect(LPCRECT lpSrcRect); CRect(POINT point, SIZE size); CRect(POINT topLeft, POINT bottomRight);

程序示例

class MyFrame:public CFrameWnd {public:MyFrame(){Create(NULL, TEXT("MFC TEST"), WS_SYSMENU, CRect(90, 90, 480, 480));} };

將在前兩個參數中的CRect構造函數中指定的屏幕左上角創建以下窗口。最后兩個參數是Window的大小。

07. Windows父窗口

在現實世界中,許多應用程序都是由不同的Windows組成的.當應用程序使用各種Windows時,大多數對象都依賴于特定的對象.它可能是您創建的第一個窗口或您指定的另一個窗口.這樣的窗口被稱為父窗口.所有其他窗口都直接或間接依賴它.

  • 如果您創建的窗口依賴于另一個窗口,則可以指定它有父級.
  • 這是通過CFrameWnd :: Create()方法的pParentWnd參數完成的.
  • 如果Window沒有父項,則傳遞帶有NULL值的參數.

讓我們看一個只有一個Window的例子,并且沒有可用的父窗口,所以我們將傳遞帶有NULL值的參數,如下面的代碼所示 :

程序示例

class MyFrame:public CFrameWnd {public:MyFrame(){//父窗口為NULLCreate(NULL, TEXT("MFC TEST"), WS_SYSMENU, CRect(90, 90, 480, 480), NULL);} };

08. 附錄

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【MFC】Windows样式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。