设置分组框控件

#include <windows.h>
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
HINSTANCE hInst;
 
/* The ‘main‘ function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
  
    static TCHAR szClassName[] = TEXT("HelloWin"); /*窗口类名*/
    WNDCLASS wndclass;   /*窗口类*/ 
     
    hInst = hInstance;
     
    /***********第一步:注册窗口类*************/
    /*为窗口类各个字段赋值*/
    wndclass.style = CS_HREDRAW | CS_VREDRAW;  /*窗口风格*/
    wndclass.lpfnWndProc  = WndProc; /*窗口过程*/
    wndclass.cbClsExtra   = 0;
    wndclass.cbWndExtra   = 0;
    wndclass.hInstance    = hInstance;  /*当前窗口句柄*/
    wndclass.hIcon        = LoadIcon(NULL, IDI_APPLICATION);  /*窗口图标*/
    wndclass.hCursor      = LoadCursor(NULL, IDC_ARROW);/*鼠标样式*/
    wndclass.hbrBackground= (HBRUSH)GetSysColorBrush(COLOR_BTNFACE);/*窗口背景画刷(灰色)*/
    wndclass.lpszMenuName = NULL;  /*窗口菜单*/
    wndclass.lpszClassName= szClassName; /*窗口类名*/
     
     
    /*注册窗口*/
    RegisterClass(&wndclass);
     
    /*************第二步:创建窗口(并让窗口显示出来)***************/
    HWND hwnd = CreateWindow(
        szClassName,  /*窗口名字*/
        TEXT("Welcome"), /*窗口标题*/
        WS_OVERLAPPEDWINDOW,  /*窗口风格*/
        CW_USEDEFAULT,  /*初始化x轴的位置*/
        CW_USEDEFAULT,  /*初始化y轴的位置*/
        800,  /*窗口宽度*/
        500,  /*窗口高度*/
        NULL, /*父窗口句柄*/
        NULL, /*窗口菜单句柄*/
        hInstance, /*当前窗口句柄*/
        NULL    /*不使用该值*/
        );
         
    if(hwnd == NULL)
    {
        MessageBox(NULL, "创建窗口出错!", "Error", MB_OK);
        return -1;
    }
 
         
    /*显示窗口*/
    ShowWindow(hwnd, nCmdShow);
    /*更新(绘制)窗口*/
    UpdateWindow(hwnd);
     
     
    /*************第三步:消息循环*************/
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);  /*翻译消息*/
        DispatchMessage(&msg);   /*分派消息*/
    }
    return msg.wParam; /*当GetMessage程序返回FALSE是程序结束*/
}
 
/*************第四步:窗口过程*****************/
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
     
    static HFONT hFont;       // 逻辑字体
    
    //一组单选按钮 
    static HWND hGroupSex;       //静态文本框--性别 
    static HWND radioMale;    //单选按钮--男
    static HWND radioFemale;  //单选按钮--女
    
    //一组单选按钮
    static HWND hGroupMarriage;  //静态文本框--婚姻状况
    static HWND radioMarried; //单选按钮--已婚
    static HWND radioSingle;  //单选按钮--未婚
    static HWND radioSecrecy; //单选按钮--保密
    
    //一组复选框
    static HWND hGroupPet;    //静态文本框--你的宠物
    static HWND checkboxDog;//复选框--狗
    static HWND checkboxCat;//复选框--猫
    static HWND checkboxFish;//复选框--鱼 
    static HWND checkboxOther;//复选框--其他 
    
    switch(message)
    {
        case WM_CREATE:
        {
            //创建逻辑字体 
            hFont = CreateFont(
                -14/*高度*/, -7/*宽度*/,0,0,400/*一般设值为400*/,
                FALSE/*不带斜体*/, FALSE/*不带下划线*/,FALSE/*不带删除线*/,
                DEFAULT_CHARSET, //使用默认字符集
                OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
                DEFAULT_QUALITY, //默认输出质量
                FF_DONTCARE, //不指定字体族
                TEXT("微软雅黑") //字体名
            );
             
            //创建静态文本框控件--选择性别 
            hGroupSex = CreateWindow(
                TEXT("button"), TEXT("你的性别:"),
                WS_CHILD | WS_VISIBLE | BS_GROUPBOX,
                20, 20, 300, 70,
                hWnd,
                (HMENU)1,/*控件ID*/
                hInst,
                NULL
            );
            
            radioMale = CreateWindow(
                TEXT("button"),
                TEXT("男"),
                WS_CHILD | WS_VISIBLE | BS_LEFT/*文字居左*/ | BS_AUTORADIOBUTTON/*单选按钮*/, 
                15, 30, 50, 26,
                hGroupSex/*父窗口为GroupBox控件*/,
                (HMENU)2,
                hInst,
                NULL
            );
            
            radioFemale = CreateWindow(
                TEXT("button"),
                TEXT("女"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
                80, 30, 50, 26,
                hGroupSex,
                (HMENU)3,
                hInst,
                NULL 
            );
             
            //选择婚姻状况 
            hGroupMarriage = CreateWindow(
                TEXT("button"),
                TEXT("婚姻状况:"),
                WS_CHILD | WS_VISIBLE | BS_GROUPBOX,
                20, 120, 300, 70,
                hWnd,
                (HMENU)4,
                hInst,
                NULL
            );
            
            radioMarried = CreateWindow(
                TEXT("button"), //按钮控件类名
                TEXT("已婚"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
                15, 30, 50, 26,
                hGroupMarriage,
                (HMENU)5, 
                hInst,
                NULL 
            );
            
            radioSingle = CreateWindow(
                TEXT("button"),
                TEXT("未婚"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
                80, 30, 50, 26,
                hGroupMarriage,
                (HMENU)6,
                hInst,
                NULL 
            );
            
            radioSecrecy = CreateWindow(
                TEXT("button"),
                TEXT("保密"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
                145, 30, 50, 26,
                hGroupMarriage,
                (HMENU)7,
                hInst,
                NULL 
            );
            
            //你的宠物
            hGroupPet = CreateWindow(
                TEXT("button"),
                TEXT("你的宠物:"),
                WS_CHILD | WS_VISIBLE | BS_GROUPBOX,
                20, 220, 300, 70,
                hWnd,
                (HMENU)8,
                hInst,
                NULL 
            );
            
            checkboxDog = CreateWindow(
                TEXT("button"),
                TEXT("狗"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTOCHECKBOX/*复选框*/,
                15, 30, 50, 26,
                hGroupPet,
                (HMENU)9,
                hInst,
                NULL
            );
            
            checkboxCat = CreateWindow(
                TEXT("button"),
                TEXT("猫"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTOCHECKBOX,
                80, 30, 50, 26,
                hGroupPet,
                (HMENU)10,
                hInst,
                NULL
            );
            
            checkboxFish = CreateWindow(
                TEXT("button"),
                TEXT("鱼"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTOCHECKBOX,
                145, 30, 50, 26,
                hGroupPet,
                (HMENU)11,
                hInst,
                NULL
            );
            
            checkboxOther = CreateWindow(
                TEXT("button"),
                TEXT("其他"),
                WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTOCHECKBOX,
                210, 30, 65, 26,
                hGroupPet,
                (HMENU)11,
                hInst,
                NULL 
            );
            
            
         
            //依次设置控件字体
            SendMessage(hGroupSex, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(radioMale, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(radioFemale, WM_SETFONT, (WPARAM)hFont, 0);
            
            SendMessage(hGroupMarriage, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(radioMarried, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(radioSingle, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(radioSecrecy, WM_SETFONT, (WPARAM)hFont, 0);
            
            SendMessage(hGroupPet, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(checkboxDog, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(checkboxCat, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(checkboxFish, WM_SETFONT, (WPARAM)hFont, 0);
            SendMessage(checkboxOther, WM_SETFONT, (WPARAM)hFont, 0);
            
            break;
        }
         

        case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
             
            //Ellipse(hdc, 0, 100, 200, 200);
             
            EndPaint(hWnd, &ps);
            break;
        }
             
        /*窗口销毁消息*/
        case WM_DESTROY:
        {
            /*处理WM_DESTROY消息时删除之前我们创建的一切GDI对象*/
            DeleteObject(hFont); //删除创建的字体
            PostQuitMessage(0);
            break;
        }
        default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
    }
    return 0;
}
时间: 2024-11-08 19:18:19

设置分组框控件的相关文章

Winform控件之分组类控件

分组类控件主要包括容器控件(Panel),分组框控件(groupBox)和选项卡控件(TabControl)等控件. 一,Panel控件 Panel控件是由System.Windows.Forms.Panel类提供的,主要作用就是将其他控件组合一起放在一个面板上,使这些控件更容易管理.当Panel控件面板上要显示过多的控件时,可设置AutoScroll属性为true. Panel控件在默认情况下不显示边框,如把BorderStyle属性设置为不是none的其他值,就可以使用面板可视化地组合相关的

Delphi 之 编辑框控件(TEdit)

TEdit 组件主要用于数据的输入和显示和编辑等操作. AutoSelect 获取组件焦点.该属性只能在单行文本组件使用.值为True为选中.false则不选中. BorderStyle 设置编辑框控件的外观效果.当值为bsSingle,为一个单线边框.为bsNone则无边框 CanUndo 该属性可以确定用户修改文本后可以undo方法回退. CharCase 设置编辑框控件文本的大小写. 如图所示 MaxLength 设置文本的最大长度,为0表示长度没有限制. PasswordChar 用来显

纯CSS设置Checkbox复选框控件的样式

下面是纯CSS设置Checkbox复选框控件的五种简单样式,有兴趣的可以进行改动将其变成自己想要的样式. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观.要做到点需要添加一段代码到你的CSS文件中. 隐藏掉所有的Checkbox复选框后,我们需要添加一个label HTML元素,我们都知道,当点击的有for属性的label标签时,对应的Checkbox复选框会被选中.这意味着,我们可以通过label的点击事件来处理我们的Checkbox复选框. 样式一 此复选框

Dev控件的下拉框控件设置默认选中项

DevExpress中下拉框控件comboBoxEdit,用法和winform的不太一样,在绑完选项后,希望设置默认选中项. 有2种方法: 方法1this.cmbMacScan.EditValue = new CheckedListBoxItem { Value = model.ScanInterval, Description = model.ScanInterval.ToString() }; this.cmbMacScan.RefreshEditValue(); 方法2this.cmbMa

iOS:提示框(警告框)控件UIActionSheet的详解

提示框(警告框)控件2:UIActionSheet 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.它与导航栏类似,它继承自UIView. 风格类型: typedef NS_ENUM(NSInteger, UIActionSheetStyle) { UIActionSheetStyleAutomatic        = -1,       //iOS系统自动默认的风格 UIActionSheetStyleDefault          = UIB

iOS:提示框(警告框)控件UIAlertView的详解

提示框(警告框)控件:UIAlertView 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能. 类型:typedef NS_ENUM(NSInteger, UIAlertViewStyle) { UIAlertViewStyleDefault = 0,                 //默认类型 UIAlertViewStyleSecureTextInput,          //安全密码的文本框输入类型 UIAlertViewStylePlai

【转】VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)

原文网址:http://www.jizhuomi.com/software/189.html 上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件.它为我们的日常操作提供了很多方便. 组合框控件简介 组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框.下拉式(Dropdown)组合框和下拉列表式(Dro

【mfc】组框、单选框控件与复选框控件

VC6中的MFC中的单选框与复选框控件也不简单,它没有VS中C#那样可以之间通过一个封装之后的函数进行判断,该单选框/复选框有没有被选中啊?或者控制单选框/复选框的选中状态.这东西比较复杂,通过相应的值来控制的. 一.基本目标 下面就用一个简单例子来说明VC6中的MFC中的单选框与复选框控件,点击"确定"按钮能够判断对话框中的所有单选框与复选框的选中状态.Radio1-Radio3互成一个组,组内仅能够有一个组员被选中,Radio4-Radio5也互成一组,选择Radio4能够令复选框

组合框控件 -- CComboBox

组合框控件 -- CComboBox 组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框.下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框.Properties面板中设置type属性.在动态创建时,BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); 在 dwStyle中添加CBS_DROPDOWNLIST参数即可.其显示效果分别为: 常