精华内容
下载资源
问答
  • Windows编程基础–第15节 MFC之复选框及单选按钮1. 新建项目新建一个基于对话框项目“day17”,布局如下,自行处理: 拖动三个check box和两个radio button到界面上,设置其ID如下: 控件名 控件ID 红色 IDC_...

    Windows编程基础–第15节 MFC之复选框及单选按钮

    1. 新建项目

    新建一个基于对话框项目“day17”,布局如下,自行处理:
    这里写图片描述

    拖动三个check box和两个radio button到界面上,设置其ID如下:

    控件名控件ID
    红色IDC_CHECK_RED
    绿色IDC_CHECK_GREEN
    蓝色IDC_CHECK_BLUE
    矩形IDC_RADIO_SQURAE
    圆形IDC_RADIO_CIRC

    执行“工具”->“tab键位置”,确保两个radio button的顺序是连续的,如下图:
    这里写图片描述
    这里写图片描述

    指定第一个radio button(矩形)的Group的值为true,如图:
    这里写图片描述

    2. 添加关联变量

    添加五个控件的变量,如图:
    这里写图片描述

        DDX_Control(pDX, IDC_CHECK_RED, m_chk_red);
        DDX_Control(pDX, IDC_CHECK_GREEN, m_chk_green);
        DDX_Control(pDX, IDC_CHECK_BLUE, m_chk_blue);
        DDX_Control(pDX, IDC_RADIO_SQURAE, m_rd_squ);
        DDX_Control(pDX, IDC_RADIO_CIRC, m_rd_circ);

    分别添加如上变量;

    3. 开始写代码吧

    现在我们来让程序运行起来时默认选中圆形;
    切换到解决方案视图,进入BOOL Cday17Dlg::OnInitDialog()方法:
    在末尾return前加入这一行:

        // TODO: 在此添加额外的初始化代码
        CheckRadioButton(IDC_RADIO_SQURAE,IDC_RADIO_CIRC,IDC_RADIO_CIRC);
    
        return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

    代码解释:

    在IDC_RADIO_SQURAE和IDC_RADIO_CIRC之间选中IDC_RADIO_CIRC

    添加五个控件的事件处理方法

    如图所示:
    这里写图片描述
    剩下四个都如上添加好;
    编辑“蓝色”按钮的点击方法:

    void Cday17Dlg::OnBnClickedCheckBlue()
    {
        // TODO: 在此添加控件通知处理程序代码
        Invalidate();
    }

    代码解释:

    Invalidate()让对话框重汇对话框;

    添加擦除背景消息(OnEraseBkgnd)事件

    如图添加OnEraseBkgnd消息处理函数:
    这里写图片描述
    编辑OnEraseBkgnd函数:

    BOOL Cday17Dlg::OnEraseBkgnd(CDC* pDC)
    {
        // TODO: 在此添加消息处理程序代码和/或调用默认值
        BOOL bRet = CDialogEx::OnEraseBkgnd(pDC);
        int nRed,nGreen,nBlue;
        nRed = m_chk_red.GetCheck() ? 255 : 0;
        nGreen = m_chk_green.GetCheck() ? 255 : 0;
        nBlue = m_chk_blue.GetCheck() ? 255 : 0;
    
        COLORREF crFore = RGB(nRed,nGreen,nBlue);
        CBrush brush;
        brush.CreateSolidBrush(crFore);
        CBrush *pOldBrush = pDC->SelectObject(&brush);
    
        RECT rc = {100, 40, 400, 340};
        if (m_rd_squ.GetCheck())
        {
            pDC->Rectangle(&rc);
        }
        else{
            pDC->Ellipse(&rc);
        }
        pDC->SelectObject(pOldBrush);
        return bRet;
    }

    代码解释:

    1. 根据颜色按钮的选择状态来选择颜色为255还是0;
    2. 用三个的颜色来创建一个画刷;
    3. 保留旧的画刷;
    4. 创建RECT 对象,即圆形的大小;
    5. 根据形状的radio button来选择化圆形还是矩形;
    6. 还原旧的画刷;

    实现其他按钮

    其他按钮就只用调用OnBnClickedCheckBlue()就可以了;

    最终效果图:

    这里写图片描述

    项目源码可以访问我的码云

    >>>我的私人博客<<<

    展开全文
  • 其中按钮类button有多种类型和风格,常见的单选钮、复选钮、分组框也在此类中,见下表: 子窗口控件:按钮类button 按钮类型,可以是按钮风格与窗口风格的组合 窗口风格: WS_CHILD 子窗口,必须有 WS_VISIBLE ...

    Windows窗口程序设计中,按钮、文本编辑框等控件都作为一个子窗口在WM_CREATE事件中创建的。其中按钮类button有多种类型和风格,常见的单选钮、复选钮、分组框也在此类中,见下表:

    子窗口控件:按钮类button
    
    按钮类型,可以是按钮风格与窗口风格的组合
    
    窗口风格:
    WS_CHILD             子窗口,必须有
    WS_VISIBLE           窗口可见,一般都有
    WS_DISABLED          禁用窗口,创建初始状态为灰色不可用的按钮时使用
    WS_TABSTOP           可用Tab键选择
    WS_GROUP             成组,用于成组的单选按钮中的第一个按钮
    
    按钮风格:
    BS_PUSHBUTTON        下压式按钮,也即普通按钮
    BS_CHECKBOX          复选按钮,不常用
    BS_AUTOCHECKBOX      含自动选中状态的复选按钮
    BS_RADIOBUTTON       单选按钮,不常用
    BS_AUTORADIOBUTTON   含自动选中状态的单选按钮
    BS_3STATE            三态复选按钮,不常用
    BS_AUTO3STATE        含自动选中状态的三态复选按钮
    BS_GROUPBOX          分组框,用来放置单选或复选按钮的
    BS_OWNERDRAW         用于自定义形状的类型,比如画个圆形的按钮
    
    以上风格指定了创建的按钮类型,不能同时使用,但必须有其一
    其中非自动类型的按钮需要自己编程来实现选中与否的状态切换
    
    BS_BITMAP            按钮上将显示位图
    BS_DEFPUSHBUTTON     设置为默认按钮,只用于下压式按钮,一个对话框中只能指定一个默认按钮
    
    创建方法:
            HWND hwndButton;
            hwndButton = CreateWindow ( TEXT("button"),        /*子窗口类名称*/
                    TEXT("Command Button"),                    /*按钮上的文字*/
           			WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,     /*按钮类型*/
               		left, top, width, height,                  /*位置*/
                    hwnd,                                      /*父窗口句柄*/
                    (HMENU)IDcmdButton,                        /*按钮ID,一个自定义整型常量*/
                    ((LPCREATESTRUCT) lParam)->hInstance, NULL);
    
    		if (!hwndButton) MessageBox(NULL,"创建按钮失败","Message",MB_OK|MB_ICONERROR);
    		ShowWindow(hwndButton,SW_SHOW);
            UpdateWindow(hwndButton);
    
    

    再来用DEV-C++的windows application示例代码,创建这十种button类按钮。(代码获得方法见上一篇博文《C++ 用DEV-C++建一个Windows窗口程序带文本框和命令按钮》)

    先建一个结构数组,存放这些按钮类型常数:

    struct button {
    	int swStyle;
    	const char *szText;
    }
    Buttons[] = {
    	BS_PUSHBUTTON,		TEXT("普通按钮"),
    	BS_DEFPUSHBUTTON,	TEXT("默认按钮"),
    	BS_RADIOBUTTON,		TEXT("单选按钮"),
    	BS_CHECKBOX,		TEXT("复选按钮"),
    	BS_3STATE,			TEXT("三态按钮"),
    	BS_AUTORADIOBUTTON,	TEXT("自动单选按钮"),
    	BS_AUTOCHECKBOX,	TEXT("自动复选按钮"),
    	BS_AUTO3STATE,		TEXT("自动三态按钮"),
    	BS_GROUPBOX,		TEXT("按钮分组框"),
    	BS_OWNERDRAW,		TEXT("自画类型按钮")
    };
    

    然后在WM_CREATE事件中遍历数组创建全部按钮,在WM_COMMAND事件中写入鼠标单击响应代码就完成了:

    #include <windows.h>
    
    struct button {
    	int swStyle;
    	const char *szText;
    }
    Buttons[] = {
    	BS_PUSHBUTTON,		TEXT("普通按钮"),
    	BS_DEFPUSHBUTTON,	TEXT("默认按钮"),
    	BS_RADIOBUTTON,		TEXT("单选按钮"),
    	BS_CHECKBOX,		TEXT("复选按钮"),
    	BS_3STATE,			TEXT("三态按钮"),
    	BS_AUTORADIOBUTTON,	TEXT("自动单选按钮"),
    	BS_AUTOCHECKBOX,	TEXT("自动复选按钮"),
    	BS_AUTO3STATE,		TEXT("自动三态按钮"),
    	BS_GROUPBOX,		TEXT("按钮分组框"),
    	BS_OWNERDRAW,		TEXT("自画类型按钮")
    };
    
    /* This is where all the input to the window goes to */
    LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
    	int num = sizeof Buttons / sizeof Buttons[0];
    	switch(Message) {
    		//在 WM_CREATE 事件中创建所有按钮类型 
    		case WM_CREATE: {
    			for (int i = 0; i < num; i++) {
    				CreateWindow( TEXT("button"),
    				Buttons[i].szText,
    				WS_CHILD | WS_VISIBLE | WS_TABSTOP | Buttons[i].swStyle,
    				80 + (i >= num / 2 ? 240 : 0),
    				60 + i * 50 - (i >= num / 2 ? 250 : 0),
    				160, 40,
    				hwnd,
    				(HMENU)i,
    				((LPCREATESTRUCT) lParam)->hInstance,
    				NULL);
    			}
    			break;
    		}
    		
    		//在 WM_COMMAND 事件中会响应button类的鼠标单击,但其中GROUPBOX不响应操作
    		case WM_COMMAND: {
    			MessageBox(NULL, Buttons[LOWORD(wParam)].szText, "Button_Click()", MB_OK);
    			break;
    		}
    				
    		/* Upon destruction, tell the main thread to stop */
    		case WM_DESTROY: {
    			PostQuitMessage(0);
    			break;
    		}
    		
    		/* All other messages (a lot of them) are processed using default procedures */
    		default:
    			return DefWindowProc(hwnd, Message, wParam, lParam);
    	}
    	return 0;
    }
     
    /* The 'main' function of Win32 GUI programs: this is where execution starts */
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    	WNDCLASSEX wc; /* A properties struct of our window */
    	HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    	MSG msg; /* A temporary location for all messages */
     
    	/* zero out the struct and set the stuff we want to modify */
    	memset(&wc,0,sizeof(wc));
    	wc.cbSize		 = sizeof(WNDCLASSEX);
    	wc.lpfnWndProc	 = WndProc; /* This is where we will send messages to */
    	wc.hInstance	 = hInstance;
    	wc.hCursor		 = LoadCursor(NULL, IDC_ARROW);
    	
    	/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    	wc.lpszClassName = "WindowClass";
    	wc.hIcon		 = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    	wc.hIconSm		 = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
     
    	if(!RegisterClassEx(&wc)) {
    		MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    		return 0;
    	}
     
    	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Button Style",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
    		CW_USEDEFAULT, /* x */
    		CW_USEDEFAULT, /* y */
    		640, /* width */
    		480, /* height */
    		NULL,NULL,hInstance,NULL);
     
    	if(hwnd == NULL) {
    		MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    		return 0;
    	}
     
    	/*
    		This is the heart of our program where all input is processed and 
    		sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
    		this loop will not produce unreasonably high CPU usage
    	*/
    	while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */
    		TranslateMessage(&msg); /* Translate key codes to chars if present */
    		DispatchMessage(&msg); /* Send it to WndProc */
    	}
    	return msg.wParam;
    }

    运行效果图:

    展开全文
  • 今天在这里和大家一起学习一下按钮模式 1. 省力访问键盘快捷方式 ↖ 下表包含了可以有助于使计算机更易于使用的键盘快捷方式。 按键 功能 按住右 Shift 八秒钟 启用和关闭筛选键 按左 Alt+左 Shift+PrtScn(或 ...

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下按钮模式

        

    1. 省力访问键盘快捷方式

        下表包含了可以有助于使计算机更易于使用的键盘快捷方式。
    按键 功能
    按住右 Shift 八秒钟 启用和关闭筛选键
    按左 Alt+左 Shift+PrtScn(或 PrtScn) 启用或关闭高对比度
    按左 Alt+左 Shift+Num Lock 启用或关闭鼠标键
    按 Shift 五次 启用或关闭粘滞键
    按住 Num Lock 五秒钟 启用或关闭切换键
    Windows 徽标键 + U 打开省力访问中央

        

    2. 惯例键盘快捷方式

        下表包含了惯例键盘快捷方式。
    按键 功能
    F1 表现帮助
    Ctrl+C 复制选择的项目
    Ctrl+X 剪切选择的项目
    Ctrl+V 粘贴选择的项目
    Ctrl+Z 撤消操作
    Ctrl+Y 重新执行某项操作
    Delete 删除所选项目并将其挪动到“回收站”
    Shift+Delete 不先将所选项目挪动到“回收站”而直接将其删除
    F2 重命名选定项目
    Ctrl+向右键 将光标挪动到下一个字词的肇端处
    Ctrl+向左键 将光标挪动到上一个字词的肇端处
    Ctrl+向下键 将光标挪动到下一个段落的肇端处
    Ctrl+向上键 将光标挪动到上一个段落的肇端处
    Ctrl+Shift 加某个箭头键 选择一块文本
    Shift 加恣意箭头键 在窗口中或桌面上选择多个项目,或者在文档中选择文本
    Ctrl 加恣意箭头键+空格键 选择窗口中或桌面上的多个单个项目
    Ctrl+A 选择文档或窗口中的全部项目
    F3 搜索文件或文件夹
    Alt+Enter 表现所选项的属性
    Alt+F4 关闭活动项目或者退出活动程序
    Alt+空格键 为活动窗口打开快捷方式菜单
    Ctrl+F4 关闭活动文档(在答应同时打开多个文档的程序中)
    Alt+Tab 在打开的项目之间切换
    Ctrl+Alt+Tab 使用箭头键在打开的项目之间切换
    Ctrl+鼠标滚轮 变动桌面上的图标大小
    Windows 徽标键 + Tab 使用 Aero Flip 3-D 循环切换任务栏上的程序
    Ctrl + Windows 徽标键 + Tab 通过 Aero Flip 3-D 使用箭头键循环切换任务栏上的程序
    Alt+Esc 以项目打开的次序循环切换项目
    F6 在窗口中或桌面上循环切换屏幕元素
    F4 在 Windows 资源管理器中表现地址栏列表
    Shift+F10 表现选定项目的快捷菜单
    Ctrl+Esc 打开「开始」菜单
    Alt+加下划线的字母 表现相应的菜单
    Alt+加下划线的字母 执行菜单命令(或其他有下划线的命令)
    F10 激活活动程序中的菜单栏
    向右键 打开右边的下一个菜单或者打开子菜单
    向左键 打开左边的下一个菜单或者关闭子菜单
    F5 刷新活动窗口
    Alt+向上键 在 Windows 资源管理器中查看上一级文件夹
    Esc 取消以后任务
    Ctrl+Shift+Esc 打开任务管理器
    插入 CD 时按住 Shift 阻挠 CD 自动播放

        

    3. 对话框键盘快捷方式

        下表包含了在对话框中使用的键盘快捷方式。
    按键 功能
    Ctrl+Tab 在选项卡上向前挪动
    Ctrl+Shift+Tab 在选项卡上向后挪动
    Tab 在选项上向前挪动
    Shift+Tab 在选项上向后挪动
    Alt+加下划线的字母 执行与该字母匹配的命令(或选择选项)
    Enter 对于很多选定命令代替单击鼠标
    空格键 如果活动选项是复选框,则选中或清除该复选框
    箭头键 如果活动选项是一组选项按钮,则选择某个按钮
    F1 表现帮助
    F4 表现活动列表中的项目
    Backspace 如果在“另存为”或“打开”对话框中选中了某个文件夹,则打开上一级文件夹

        

    4. Windows 徽标键相关的快捷键

        Windows徽标键就是表现为Windows旗号,或标有文字Win或Windows的按键,以下简称Win键。XP时代有4个经典的 Win 键组合:R/E/F/L。到了 Win7,花样更多了。
    Win:打开或关闭开始菜单。
    Win + Pause:表现系统属性对话框。
    Win + D:表现桌面。
    Win + M:最小化全部窗口。
    Win + SHIFT + M:还原最小化窗口到桌面上。
    Win + E:打开我的电脑
    Win + F:搜索文件或文件夹。
    Ctrl + Win + F:搜索计算机(如果您在网络上) 。
    Win + L:锁定您的计算机或切换用户。
    Win + R:打开运行对话框。
    Win + T:切换任务栏上的程序(感到是和alt+ESC 一样 )
    Win + 数字:让位于任务栏指定位置(按下的数字作为序号)的程序,新开一个实例。(感到这个比较新奇,貌似倏地启动。) Shift + Windows logo key +number:Start a new instance of the program pinned to the taskbar in the position indicated by the number.
    Ctrl + Win + 数字:让位于任务栏指定位置(按下的数字作为序号)的程序,切换到上一次的活动窗口。 Ctrl+Windows logo key +number:Switch to the last active window of the program pinned to the taskbar in the position indicated by the number.
    ALT + Win + 数字:让位于任务栏指定位置(按下的数字作为序号)的程序,表现跳转清单。 Alt+Windows logo key +number: Open the Jump List for the program pinned to the taskbar in the position indicated by the number.
    Win + TAB:循环切换任务栏上的程序并使用的Aero三维效果。
    Ctrl + Win + TAB:使用方向键来循环循环切换任务栏上的程序,并使用的Aero三维效果。
    按Ctrl + Win + B:切换到在通知区域中表现信息的程序
    Win + 空格:预览桌面。
    Win + ↑:最大化窗口。
    Win + ↓:最小化窗口。
    Win + ←:最大化到窗口左边的屏幕上。
    Win + →:最大化窗口到右边的屏幕上。
    Win + Home:最小化全部窗口,除了以后激活窗口。
    Win+ SHIFT + ↑:拉伸窗口的到屏幕的顶部和底部。
    Win+ SHIFT + →/←:挪动一个窗口,从一个表现器到另一个。
    Win + P:选择一个演示文稿表现模式。
    Win + G:循环切换侧边栏的小工具。
    Win + U:打开省力访问中央。
    Win + x:打开Windows挪动中央。

        

    5. Windows Explorer相关快捷键

        Ctrl+N 打开新窗口
    Ctrl+Shift+N 新建文件夹
    End 表现活动窗口的底部
    Home 表现活动窗口的顶部
    F11 最大化或最小化活动窗口
    Num Lock+小键盘星号(*) 表现选中文件夹的全部子文件夹
    Num Lock+小键盘加号(+) 表现选中文件夹的内容
    Num Lock+小键盘减号(-) 折叠选中文件夹
    左方向键 折叠以后展开的选中文件夹或选中下层文件夹
    Alt+Enter 打开选中项目的属性对话框
    Alt+P 表现预览窗格
    Alt+左方向键 切换到前一次打开的文件夹
    右方向键 表现(展开)以后选中项目或选中第一个子文件夹
    Alt+右方向键 切换到下一次后打开的文件夹
    Alt+上方向键 打开下层文件夹
    Ctrl+鼠标滚轮 改变文件和文件夹图标的大小和表面
    Alt+D 选中地址栏(定位到地址栏)
    Ctrl+E 选中搜索框(定位到搜索框)

        

    6. 放大镜键盘快捷方式

        下表包含了使用放大镜的键盘快捷方式。
    按键 功能
    Windows 徽标键 + 加号或减号 放大或缩小
    Ctrl+Alt+空格键 表现鼠标指针
    Ctrl+Alt+F 切换到全屏模式
    Ctrl+Alt+L 切换到镜头模式
    Ctrl+Alt+D 切换到停靠模式
    Ctrl+Alt+I 反色
    Ctrl+Alt+箭头键 按箭头键的方向平移
    Ctrl+Alt+R 调整镜头的大小
    Windows 徽标键 + Esc 退出放大镜

        

    7. 远程桌面相关快捷键

        Alt+Page Up 按从左向右次序切换程序
    Alt+Page Down 按从右向左切换程序
    Alt+Insert 按程序打开先后次序循环切换程序
    Alt+Home 表现“开始”菜单
    Ctrl+Alt+Break 在窗口模式和全屏之间切换
    Ctrl+Alt+End 表现Windows安全性对话框
    Alt+Delete 表现以后窗口的系统菜单
    Ctrl+Alt+-(小键盘减号) 以后活动窗口截图
    Ctrl+Alt++(小键盘加号) 全屏截图
    Ctrl+Alt+向右键 从远程桌面控件“跳转”到主机程序中的控件(如按钮或文本框)。将远程桌面控件嵌入到其他(主机)程序后,此功能非常有用。
    Ctrl+Alt+向左键 从远程桌面控件“跳转”到主机程序中的控件(如按钮或文本框)。将远程桌面控件嵌入到其他(主机)程序后,此功能非常有用。

        每日一道理
    我拽着春姑娘的衣裙,春姑娘把我带到了绿色的世界里。

        

    8. 画图键盘快捷方式

        下表包含了使用画图的键盘快捷方式。
    按键 功能
    Ctrl+N 创立新的图片
    Ctrl+O 打开现有图片
    Ctrl+S 将变动保存到图片
    F12 将此图片另存为新文件
    Ctrl+P 打印图片
    Alt+F4 关闭图片及其画图窗口
    Ctrl+Z 撤消变动
    Ctrl+Y 恢复变动
    Ctrl+A 选择整个图片
    Ctrl+X 剪切选择内容
    Ctrl+C 将选择内容复制到剪贴板
    Ctrl+V 从剪贴板粘贴选择内容
    向右键 将选择内容或活动图形向右挪动一个像素
    向左键 将选择内容或活动图形向左挪动一个像素
    向下键 将选择内容或活动图形向下挪动一个像素
    向上键 将选择内容或活动图形向上挪动一个像素
    Esc 取消某个选择
    Delete 删除某个选择
    Ctrl+B 粗体选择文本
    Ctrl++ 将画笔、直线或形状轮廓的宽度增长一个像素
    Ctrl+- 将画笔、直线或形状轮廓的宽度增加一个像素
    Ctrl+I 将所选文本改为斜体
    Ctrl+U 为所选文本添加下划线
    Ctrl+E 打开“属性”对话框
    Ctrl+W 打开“调整大小和扭曲”对话框
    Ctrl+Page Up 放大
    Ctrl+Page Down 缩小
    F11 以全屏模式查看图片
    Ctrl+R 表现或隐藏标尺
    Ctrl+G 表现或隐藏网格线
    F10 或 Alt 表现快捷键提示
    Shift+F10 表现以后快捷菜单
    F1 打开“画图”帮助

        

    9. 写字板的键盘快捷方式

        按键 功能
    Ctrl+N 新建一个文档
    Ctrl+O 打开一个现有文档
    Ctrl+S 将变动保存到文档
    F12 将此文档另存为新文件
    Ctrl+P 打印文档
    Alt+F4 关闭“写字板”
    Ctrl+Z 撤消变动
    Ctrl+Y 恢复变动
    Ctrl+A 选择整个文档
    Ctrl+X 剪切选择内容
    Ctrl+C 将选择内容复制到剪贴板
    Ctrl+V 从剪贴板粘贴选择内容
    Ctrl+B 将所选文本改为粗体
    Ctrl+I 将所选文本改为斜体
    Ctrl+U 为所选文本添加下划线
    Ctrl+= 使选择的文本成为下标
    Ctrl+Shift+= 使选择的文本成为上标
    Ctrl+L 向左对齐文本
    Ctrl+E 向中央对齐文本
    Ctrl+R 向右对齐文本
    Ctrl+J 对齐文本
    Ctrl+1 设置单倍行距
    Ctrl+2 设置双倍行距
    Ctrl+5 将行距设置为 1.5
    Ctrl+Shift+> 增长字体大小
    Ctrl+Shift+< 减小字体大小
    Ctrl+Shift+A 将字符变动为全部使用大写字母
    Ctrl+Shift+L 变动项目符号款式
    Ctrl+D 插入 Microsoft 画图图片
    Ctrl+F 在文档中查找文本
    F3 在“查找”对话框中查找文本的下一个实例
    Ctrl+H 在文档中替换文本
    Ctrl+向左键 将光标向左挪动一个字
    Ctrl+向右键 将光标向右挪动一个字
    Ctrl+向上键 将光标挪动到上一行
    Ctrl+向下键 将光标挪动到下一行
    Ctrl+Home 挪动到文档的开头
    Ctrl+End 挪动到文档的结尾
    Ctrl+Page Up 向上挪动一个页面
    Ctrl+Page Down 向下挪动一个页面
    Ctrl+Delete 删除下一个字
    F10 表现快捷键提示
    Shift+F10 表现以后快捷菜单
    F1 打开“写字板”帮助

        

    10. 计算器的键盘快捷方式

        按键 功能
    Atl+1 切换到标准模式
    Alt+2 切换到科学型模式
    Alt+3 切换到程序员模式
    Alt+4 切换到统计信息模式
    Ctrl+E 打开日期计算
    Ctrl+H 将计算历史记录打开或关闭
    Ctrl+U 打开单位转换
    Alt+C 计算或解决日期计算和工作表
    F1 打开“计算器”帮助
    Ctrl+Q 按下 M- 按钮
    Ctrl+P 按下 M+ 按钮
    Ctrl+M 按下 MS 按钮
    Ctrl+R 按下 MR 按钮
    Ctrl+L 按下 MC 按钮
    % 按下 % 按钮
    F9 按下 +/– 按钮
    / 按下 / 按钮
    * 按下 * 按钮
    + 按下 + 按钮
    - 按下 – 按钮
    R 按下 1/× 按钮
    @ 按下平方根按钮
    0-9 按下数字按钮 (0-9)
    = 按下 = 按钮
    . 按下 .(小数点)按钮
    Backspace 按下 Backspace 按钮
    Esc 按下 C 按钮
    Del 按下 CE 按钮
    Ctrl+Shift+D 清除计算历史记录
    F2 编辑计算历史记录
    向上箭头键 在计算历史记录中向上导航
    向下箭头键 在计算历史记录中向下导航
    Esc 取消编辑计算历史记录
    Enter 编辑后重新计算计算历史记录
    F3 在科学型模式下选择“角度”
    F4 在科学型模式下选择“弧度”
    F5 在科学型模式下选择“梯度”
    I 在科学型模式下按 Inv 按钮
    D 在科学型模式下按 Mod 按钮
    Ctrl+S 在科学型模式下按 sinh 按钮
    Ctrl+O 在科学型模式下按 cosh 按钮
    Ctrl+T 在科学型模式下按 tanh 按钮
    ( 在科学型模式下按 ( 按钮
    ) 在科学型模式下按 ) 按钮
    N 在科学型模式下按 ln 按钮
    ; 在科学型模式下按 Int 按钮
    S 在科学型模式下按 sin 按钮
    O 在科学型模式下按 cos 按钮
    T 在科学型模式下按 tan 按钮
    M 在科学型模式下按 dms 按钮
    P 在科学型模式下按 pi 按钮
    V 在科学型模式下按 F-E 按钮
    X 在科学型模式下按 Exp 按钮
    Q 在科学型模式下按 x^2 按钮
    Y 在科学型模式下按 x^y 按钮
    # 在科学型模式下按 x^3 按钮
    L 在科学型模式下按 log 按钮
    ! 在科学型模式下按 n! 按钮
    Ctrl+Y 在科学型模式下按 y√x 按钮
    Ctrl+B 在科学型模式下按 3√x 按钮
    Ctrl+G 在科学型模式下按 10x 按钮
    F5 在程序员模式下选择 Hex
    F6 在程序员模式下选择 Dec
    F7 在程序员模式下选择 Oct
    F8 在程序员模式下选择 Bin
    F12 在程序员模式下选择 Qword
    F2 在程序员模式下选择 Dword
    F3 在程序员模式下选择 Word
    F4 在程序员模式下选择 Byte
    K 在程序员模式下按 RoR 按钮
    J 在程序员模式下按 RoL 按钮
    % 在程序员模式下按 Mod 按钮
    ( 在程序员模式下按 ( 按钮
    ) 在程序员模式下按 ) 按钮
    | 在程序员模式下按 Or 按钮
    ^ 在程序员模式下按 Xor 按钮
    ~ 在程序员模式下按 Not 按钮
    & 在程序员模式下按 And 按钮
    A-F 在程序员模式下按 A-F 按钮
    空格键 在程序员模式下切换位值
    A 在统计信息模式下按 Average 按钮
    Ctrl+A 在统计信息模式下按 Average Sq 按钮
    S 在统计信息模式下按 Sum 按钮
    Ctrl+S 在统计信息模式下按 Sum Sq 按钮
    T 在统计信息模式下按 S.D. 按钮
    Ctrl+T 在统计信息模式下按 Inv S.D. 按钮
    D 在统计信息模式下按 CAD 按钮

        

    11. Windows 日记本键盘快捷方式

        下表包含了使用 Windows 日记的键盘快捷方式。
    按键 功能
    Ctrl+N 开始新的便笺
    Ctrl+O 打开最近使用的便笺
    Ctrl+S 将变动保存到便笺
    Ctrl+Shift+V 将便笺挪动到特定的文件夹
    Ctrl+P 打印便笺
    Alt+F4 关闭便笺及其日记本窗口
    Ctrl+Z 撤消变动
    Ctrl+Y 恢复变动
    Ctrl+A 选择页面上的全部项目
    Ctrl+X 剪切选择内容
    Ctrl+C 将选择内容复制到剪贴板
    Ctrl+V 从剪贴板粘贴选择内容
    Esc 取消某个选择
    Delete 删除某个选择
    Ctrl+F 开始基本查找
    Ctrl+G 转到页面
    F5 刷新查找结果
    F5 刷新便笺列表
    F6 在便笺列表和便笺之间切换
    Ctrl+Shift+C 表现便笺列表中列标题的快捷菜单
    F11 以全屏模式查看便笺
    F1 打开“日记本”帮助

        

    12. Windows 帮助查看器键盘快捷方式

        下表包含了帮助查看器使用的键盘快捷方式。
    按键 功能
    Alt+C 表现目录
    Alt+N 表现“连接设置”菜单
    F10 表现“选项”菜单
    Alt+向左键 返回先前查看过的主题
    Alt+向右键 向前挪动到下一个(先前已查看过的)主题
    Alt+A 表现客户支持页面
    Alt+Home 表现帮助和支持主页
    Home 挪动到主题的开头
    End 挪动到主题的末端
    Ctrl+F 搜索以后主题
    Ctrl+P 打印主题
    F3 将光标挪动到搜索框

    文章结束给大家分享下程序员的一些笑话语录: 腾讯的动作好快,2010年3月5日19时28分58秒,QQ同时在线人数1亿!刚刚看到编辑发布的文章,相差才2分钟,然后连专题页面都做出来了,他们早就预料到了吧?(其实,每人赠送10Q币,轻轻松松上两亿!)

    转载于:https://www.cnblogs.com/jiangu66/archive/2013/05/13/3076659.html

    展开全文
  • buttonST 按钮

    千次阅读 2016-11-21 14:29:28
    BS_3STATE 与复选框一样本样式按钮可被单击变暗。变暗状态通常用于指示本样式的按键正处于禁用状态。  BS_AUTO3STATE 与三状态的复选框一样当用户选中它本按钮样式状态外观会改变。  BS_AUT

    VC++ MFC 按钮的全部样式Style

    转载地址:http://www.cnblogs.com/lujin49/p/4691107.html 
    Button Style 
    BS_3STATE 与复选框一样本样式按钮可被单击变暗。变暗状态通常用于指示本样式的按键正处于禁用状态。 
    BS_AUTO3STATE 与三状态的复选框一样当用户选中它本按钮样式状态外观会改变。 
    BS_AUTOCHECKBOX 与复选框一样,除了在用户点控件后会出现一个选中标志,当用户在下一次点选时,该标志会消失。 
    BS_AUTORADIOBUTTON 与单选框一样,不同的是,用户点选它时会高亮显示,同时,会把同一组的其它同样的按钮的高亮状态转移到自己身上。 
    BS_BITMAP 指定按钮以一张位图显示。 
    BS_BOTTOM 把按钮标题放置到按钮矩形区域的底部。 
    BS_CENTER 按钮标题在按钮的矩形区域中央显示。 
    BS_CHECKBOX 在按钮的右边创建一个小方块(此样式必须与BS_LEFTTEXT结合使用。) 
    BS_DEFPUSHBUTTON 创建一个通用的默认按钮该按钮有一个厚重的黑色边框。用户可以通过按回车键来点选本按钮,该按钮可以实现用户通常要使用的功能(即默认执行动作功能)。 
    BS_FLAT 指定按钮为2D按钮,不采用3D控件所使用的阴影。 
    BS_GROUPBOX 创建一个分组框来给控件分组,如果使用了标题,则标题会出现在分组框的左上角位置。 
    BS_ICON 指定按钮上显示一个图标。 
    BS_LEFT 在控件的矩形区域内左对齐标题。如果按钮是一个没有BS_RIGHTBUTTON 样式的复选框或单选框 ,那么文本居将在复选框或单选框的右边居左对齐(这话有些多余,意思文本在复选框或单选框的那个可选被小方框或圆圈的右边)。 
    BS_LEFTTEXT 当按钮是单选或是复选框时,标题文本将出现在单选或复选框的客户区(即复选框的矩形框,单选框的圆形框)的左边。 
    BS_MULTILINE 如果标题文本太长,将在绘制区域内对文本进行折行处理。 
    BS_NOTIFY 激活按钮,使之可对父窗口发送BN_DBLCLK, BN_KILLFOCUSBN_SETFOCUS 消息,注意:不管有没有使用本样式,按钮都有一个BN_CLICKED 可发送消息。 
    BS_OWNERDRAW 创建一个自绘风格的按钮。当按钮的外观发生改变时,框架会调用DrawItem成员函数。本样式在使用CBitmapButton类时必须设置。 
    BS_PUSHBUTTON 创建一个按钮(即最常见的按钮),该按钮在点击时,将向父窗口发送一个WM_COMMAND 消息。 
    BS_PUSHLIKE 把(多选框,三态多选框,单选框)以按钮的形式显示,该按钮在未选种状态时是浮起的,但在选中状态时是陷入状态的。 
    BS_RADIOBUTTON 创建单选框,该按钮有一个圆形的客户区,(在本样式不与BS_LEFTTEXT 样式结合使用的情况下)标题文本在其右方。单选框通常用于有相关联的多个可选项里面,但相互之间只有作一个选择的情况下。 
    BS_RIGHT 在按钮的绘制区域内右对齐文本。但如果按钮是一个没有BS_RIGHTBUTTON样式的单选或复选框,标题文本将在单选或复选框可点选区的右边居右对齐。 
    BS_RIGHTBUTTON 设定单选框的圆形可选区或复选框的方开形复选区出现在按钮的矩形区域的右边。与BS_LEFTTEXT 的效果一样。 
    BS_TEXT 指定按钮将显示文本标题。 
    BS_TOP 将标题文本显示在按钮的绘制区域的顶边。 
    BS_USERBUTTON 已废弃不用,只作为兼容16位系统版本的Windows,基于32位windows系统的请用BS_OWNERDRAW样式取代。 
    BS_VCENTER 设定按钮的标题在绘制区域的垂直方向居中。


    MFC按钮控件实现指示灯效果

    转载地址:http://blog.sina.com.cn/s/blog_a5b3ed560101bwgm.html 
    VC为按钮控件添加图片的方法有很多种: 
    直接调用SetBitmap; CButton pButton->SetBitmap(hBitmap); 
    使用CButtonST控件; 
    使用CDC; 
    使用CBitmapButton; 
    这里主要讲解CBitmapButton的使用,CBitmapButton作为MFC的控件类,具体使用如下: 
    创建一个新的基于对话框的MFC工程

    1. 首先添加按钮控件,将属性Owner Draw设为True,按钮ID: IDC_BUTTON1
    2. 添加位图资源ID: IDB_BITMAP_CLOSE IDB_BITMAP_RED
    3. 在对话框类中添加private成员变量: CBitmapButton m_button; bool LedFlag;
    4. 在初始化函数OnInitDialog里添加图片加载: 
      c++ 
      m_button.LoadBitmaps(IDB_BITMAP_CLOSE); 
      m_button.SubclassDlgItem(IDC_BUTTON1,this); 
      m_button.SizeToContent(); 
    5. 使用CBitmapButton::LoadBitmaps装载各种状态的图片,再用SubclassDlgItem关联到想要的按钮,使用CBitmapButton::SizeToContent函数使按钮适合图片大小。注意Loadbitmaps一定要在关联到按钮之前进行! 
      为按钮控件添加单击事件处理函数,输入如下代码: 
      代码2 
      按理来说,写上m_ctrlButton.LoadBitmaps(图片ID);就可以了,可是这样做之后,发现按键了没反应。无意中将对话框最小化再还原,发现图片变了。所以实际上是没有进行刷新导致的。在后面加上m_button.Invalidate()就可以了。
    6. 运行程序 
      状态1
    7. 单击控件按钮变成红色 
      状态2

    MFC Radio Button 使用 分组 RadioButton 用法

    转载地址:http://blog.csdn.net/c_cyoxi/article/details/23868979 
    1. 环境:VS2010 
    2. 分组 
    将radio1、radio2、radio3分为1组,radio4、radio5分为另一组; 
    方法:设置 radio1 的 属性: group、tabstop、auto均为true 
    设置 radio2 的 属性: group设为false, tabstop、auto均为true 
    设置 radio3 的 属性:group设为false, tabstop、auto均为true

    设置 radio4 的 属性: group、tabstop、auto均为true 
    设置 radio5 的 属性: group设为false,tabstop、auto均为true 
    分组的原则为:在选上 Group属性的这一个开始直到碰到下一个选上Group属性的为止。

    1. 按CTRL+D,保证同一组内的radio的tab序号是连续的;调整tab序号的方式是:鼠标点击数字,比如先点3,然后点7,则3和7会交换,即radio1变为7,radio5变为3; 
      这里写图片描述

    2. 关联int型变量 注意:只需将group属性为true的radio1关联,radio2和radio3无需关联; 同样,radio4需关联,radio5无需关联 
      这里写图片描述

    3. 第4步完成后,在窗体头文件中可以看到 
      这里写图片描述 
      构造函数: 
      默认第一个radio被选中,即radio1被选中

    4. 事件处理 
      设置radio1的事件 
      这里写图片描述 
      设置radio2和radio3的点击事件函数 和 radio1 相同 
      这里写图片描述

    事件代码: 
    这里写图片描述

    注意:updatedata(true) 不能少; 它的作用是 将radio的状态值更新给关联的变量,即m_radiobtngroup1;

    这里写图片描述 
    这里写图片描述 
    这里写图片描述 
    感谢作者的简单易懂的分享


    CButtonST类简介

    转载地址:小城zjc 
    轩辕泪1020说明: 
    1. 添加了丢失的图片。 
    2. 在文章中所有的SubclassDlgItem()函数在源代码中都没有找到。

    1 本章精华

    CButtonST是功能非常全的CButton派生类,利用它你可以实现各种按钮的效果,它包括的特征如下:

    1、 CButton所有的功能 
    2、 文字和图标按钮 
    3、 16×16,32×32,48×48,16或256色图标的支持 
    4、 支持透明按钮 
    5、 支持标准的或新的平面按钮风格 
    6、 运行时刻按钮风格的变换 
    7、 鼠标悬浮在按钮上时图标的变化 
    8、 支持tooltips 
    9、 每个按钮可以有自己的鼠标形状 
    10、 按钮颜色可以定制 
    下图是用CButtonST做的几个按钮: 
    img1 Basic feature 
    CButtonST类主要包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四个文件。如果你打算使用CButtonST的窗口不止一个,那么我建议你在VC++的Workspace | FileView中导入以上的四个文件之后,然后在SdtAfx.h文件中添加合适的include语句,如#include "BtnST.h"

    在接下来的几篇文章中,我将根据作者提供的演示程序向大家介绍CButtonST的各种常用方法。在最后一篇文章中,将为各位提供CButtonST类的中文文档,以供各位在以后的使用中参考。

    2 CButtonST使用技巧(一)

    本节主要包括了以下的效果: 
    1. 在按钮上加入Icon,使Icon和文字同时显示 
    2. 显示平面按钮 
    3. 使按钮上的图标可变 
    4. 设置按钮在不同状态下的底色和文字颜色 
    5. 设置图标和文字的位置 
    6. 根据Icon的形状设置按钮的形状 
    7. 添加Tooltips 
    以下是Basic Features的演示界面: 
    img1 Basic feature

    效果一:在按钮上加入Icon,使Icon和文字同时显示 
    假设按钮ID为IDC_BUTTON1 
    1. 添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,设其ID设为IDI_ICON1 
    3. 在OnInitDialog函数中初始化按钮 
    m_btn.SubclassDlgItem(IDC_BUTTON1,this); 
    m_btn.SetIcon(IDI_ICON1); 
    m_btn.SetFlat(FALSE); 
    注意:为达到最好效果,请根据Icon的大小调整按钮的大小。 
    实例:演示程序中的Standard 按钮。 
    效果二:显示平面按钮 
    只需要在效果一的基础上把m_btn.SetFlat(FALSE);语句去掉 
    效果三:使按钮上的图标可变 
    假设按钮ID为IDC_BUTTON1 
    1. 添加成员变量 
    CButtonST m_btn; 
    2. 添加两个Icon资源,ID设为IDI_ICON1IDI_ICON2,其中IDI_ICON1是普通状态的图标,IDI_ICON2是按下时的图标 
    3. 在OnInitDialog函数中初始化按钮 
    m_btn.SubclassDlgItem(IDC_BUTTON1,this); 
    m_btn.SetIcon(IDI_ICON2,IDI_ICON1); 
    实例:演示程序中的Halloween 按钮。

    效果四:设置按钮在不同状态下的底色和文字颜色 
    假设按钮ID为IDC_BUTTON1 
    1. 添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,设其ID设为IDI_ICON1 
    3. 在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
    m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
    m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    提示:SetColor函数和OffsetColor函数的第一个参数表示按钮的各个状态,前景色就是文字的颜色,它们的取值表示:

    BTNST_COLOR_BK_IN                  //鼠标放在按钮内时的背景色
    BTNST_COLOR_FG_IN,                  //鼠标放在按钮内时的前景色
    BTNST_COLOR_BK_OUT,             //普通状态时的背景色  
    BTNST_COLOR_FG_OUT,             //普通状态时的前景色
    BTNST_COLOR_BK_FOCUS,         //按钮被按下后的背景色
    BTNST_COLOR_FG_FOCUS,         //按钮被按下后的前景色
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实例:演示程序中的48×48 icon 按钮、Zip按钮等。

    效果五:设置图标和文字的位置 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2.添加Icon资源,ID设为IDI_ICON1 
    3.在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    提示:SetAlign函数的第一个参数表示位置信息,缺省情况下,文字在图标右边

    ST_ALIGN_HORIZ       // 文字在右
    ST_ALIGN_VERT         //文字在下
    ST_ALIGN_HORIZ_RIGHT// 文字在左
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    实例:演示程序中的Search 按钮。

    效果六:根据Icon的形状设置按钮的形状 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2.添加Icon资源,设其ID设为IDI_ICON1 
    3.在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.DrawBorder(FALSE);
    m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
    m_btn.SetColor(CButtonST::BTNST_COLOR_BK_IN, RGB(208,208,208));
    m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:为达到最好效果,请根据Icon的大小调整按钮的大小。 
    并根据实际情况设置背景颜色。请事先将按钮的文字去掉。

    效果七:添加Tooltips 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2.添加Icon资源,设其ID设为IDI_ICON1 
    3. 在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.SetTooltipText(_T("This is a tooltip./r/nMultiline!"));
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    3 CButtonST使用技巧(二)

    本节主要包括了以下的效果: 
    1. 改变鼠标进入按钮时的形状(超链接效果) 
    2. 菜单按钮 
    3. 位图按钮 
    4. 按钮焦点 
    5. CheckBox按钮 
    6. 透明按钮(按钮背景和窗口背景一样) 
    7. 特殊的PictureBox

    效果一:改变鼠标进入按钮时的形状(超链接效果) 
    假设按钮ID为IDC_BUTTON1 
    1. 添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,设其ID设为IDI_ICON1 
    3. 在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
    m_btn.SetURL("www.scut.edu.cn");
    m_btn.SetTooltipText("www.scut.edu.cn");
    m_btn.SetBtnCursor(IDC_CURSOR1);
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    效果二:菜单按钮 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,设其ID设为IDI_ICON1 
    3. 添加Menu,ID设为IDR_MENU 
    4. 在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
    m_btn.SetMenu(IDR_MENU, m_hWnd);
     
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    注意:菜单的效果类似与右键菜单,所有在设置菜单选项时只设置一列就够了。另外菜单的宽度与菜单的文字长度有关,可以用空格占位的办法以达到最佳效果。

    在菜单中引入位图的方法 
    1.添加ToolBar,依次使用Menu菜单项ID作为ToolBar按钮的ID。 
    2.ToolBar上的按钮图标将显示在相应的菜单项中。 
    将上面代码中的 
    m_btn.SetMenu(IDR_MENU, m_hWnd); 
    改为 
    m_btn.SetMenu(IDR_MENU, m_hWnd, TRUE, IDR_TOOLBAR); 
    IDR_TOOLBAR为相应ToolBar的ID。

    效果三:位图按钮 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2.添加位图资源,ID设为IDB_BITMAP1 
    3.在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);     
    m_btn.SetBitmaps(IDB_BITMAP1,RGB(0,0,0));
    m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    提示: 上面的SetBitmaps函数会将图片中颜色值为RGB(0,0,0)的点设为透明。

    效果四:按钮焦点 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,设其ID设为IDI_ICON1 
    3. 在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
    m_btn.DrawFlatFocus(TRUE);
     
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    效果五:CheckBox按钮

    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,ID设为IDI_ICON1IDI_ICON2 
    3.在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_CHECK1,this);
    m_btn.SetIcon(IDI_ICON1,IDI_ICON2);
    m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    提示: 
    IDI_ICON1为选中时候显示的图标 
    IDI_ICON2为未选中时候的图标

    效果六:透明按钮 
    假设按钮ID为IDC_BUTTON1 
    1.添加成员变量 
    CButtonST m_btn; 
    2. 添加Icon资源,ID设为IDI_ICON1 
    3.在OnInitDialog函数中初始化按钮

    m_btn.SubclassDlgItem(IDC_BUTTON1,this);
    m_btn.SetIcon(IDI_ICON1);
    m_btn.DrawTransparent(TRUE);
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    效果七:特殊的PictureBox 
    利用CButtonST的特殊显示风格,完全可以把它当作一个PictureBox控件使用。这时一般会把按钮的属性设置为disable。 
    实例:演示程序的About页中使用了CButtonST来代替PictureBox。 
    这里写图片描述

    4 CButtonST使用技巧(三)

    本节将介绍两个CButtonST的派生类。

    一、CWinXPButtonST类 
    CWinXPButtonST类 是一个CButtonST的派生类。它的特点是使用了WindowsXP中的圆角、黑色边框的风格。它包括WinXPButtonST.h和WinXPButtonST.cpp两个文件,而由于它是从CButtonST派生而来的,所以在引用它时,也要一并引入CButtonST的文件。 
    使用: 
    1. 引入文件,添加文件 
    2. 导入文件后,在SdtAfx.h文件中添加 
    #include "WinXPButtonST.h" 
    3. 添加成员变量 
    CWinXPButtonST m_btn2; 
    4. 假设按钮ID为IDC_BUTTON 
    添加Icon资源,ID设为IDI_ICON1 
    5. 在OnInitDialog函数中初始化按钮

    m_btn2.SubclassDlgItem(IDC_BUTTON,this);
    m_btn2.SetIcon(IDI_ICON1);
    m_btn2.SetRounded(TRUE);
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    注意:但是它存在一个不足的地方,就是按钮的圆角是画出来的,按钮的形状仍然是原来的矩形。所以如果在有背景色的窗口中使用该按钮的话就会显得相当碍眼。 
    如图所示,在黑色的背景色中显示出难看的尖角:

    图3–>此图不知道在何处!

    解决的办法是通过SetColor函数使得按钮的底色与窗口的底色一致。

    二、CShadeButtonST类 
    CShadeButtonST类 是CButtonST的另一个派生类。它的特点是支持更为多样化的背景,通过SetShade函数可以为按钮设置9种不通的背景效果。它包括四个文件,它们分别是CeXDib.h、CeXDib.cpp、ShadeButtonST.h和ShadeButtonST.cpp。在引用它时,同样要一并引入CButtonST的文件。 
    使用: 
    1.引入文件,添加文件 
    2.导入文件后,在SdtAfx.h文件中添加 
    #include "ShadeButtonST.h" 
    3.添加成员变量 
    CShadeButtonST m_btn3; 
    4.假设按钮ID为IDC_BUTTON3 
    添加Icon资源,ID设为IDI_ICON1 
    5.在OnInitDialog函数中初始化按钮

    m_btn3.SubclassDlgItem(IDC_BUTTON3,this);
    m_btn3.SetIcon(IDI_ICON1);
    m_btn3.SetShade(CShadeButtonST::SHS_METAL);
     
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    下面给出各种背景效果和对应的参数值。 
    图4

    5 CButtonST类公共接口函数

    以下是CButtonST类的所有公共成员函数(函数名按音序排列先后):

    CButtonST::DrawBorder 
    DWORD DrawBorder(BOOL bDrawBorder = TRUE, BOOL bRepaint = TRUE) 
    注释: 
    因为CButtonST的默认显示风格是平面按钮。调用此函数用来显示按钮边框。 
    参数: 
    bDrawBorder: 值为TRUE则显示按钮边框。 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行完毕。

    CButtonST::DrawFlatFocus 
    DWORD DrawFlatFocus(BOOL bDrawFlatFocus, BOOL bRepaint = TRUE) 
    注释: 
    此函数只对平面按钮有效,调用此函数可以在按钮中显示焦点。 
    参数: 
    bDrawFlatFocus: 值为TRUE则会在平面按钮上显示焦点。 
    bRepaint : 值为TRUE则马上重画按钮。 
    返回值: 
    BTNST_OK: 表示函数执行成功。

    CButtonST::DrawTransparent 
    void DrawTransparent(BOOL bRepaint = FALSE) 
    注释: 
    调用此函数来激活透明显示模式。注意,此操作是不可逆的,而且必须在按钮实例创建之后调用。函数将会在内存中保留一份窗口背景的拷贝,因此请真的有需要时才调用此函数,以免浪费内存空间。透明模式一般是在带有背景的窗口中使用。 
    参数: 
    bRepaint: 为TRUE则马上重绘按钮。

    CButtonST::OffsetColor 
    DWORD OffsetColor(BYTE byColorIndex, short shOffset, BOOL bRepaint = TRUE) 
    注释: 
    调用此函数可以设置按钮在各种状态下显示指定的底色。函数会根据所传递的偏移量参数以及按钮原来的默认底色产生一个新的颜色值。通过这样的方法可以使得按钮在不同状态下的颜色变化更为自然。 
    参数: 
    byColorIndex : 状态索引值,它的取值必须是以下枚举值之一。 
    取值注释 
    BTNST_COLOR_BK_IN 鼠标指针位于按钮上面时的底色 
    BTNST_COLOR_FG_IN 鼠标指针位于按钮上面时的前景色 
    BTNST_COLOR_BK_OUT 鼠标指针不在按钮上面时的底色 
    BTNST_COLOR_FG_OUT 鼠标指针不在按钮上面时的前景色 
    BTNST_COLOR_BK_FOCUS 焦点位于按钮上面时的底色 
    BTNST_COLOR_FG_FOCUS 焦点位于按钮上面时的前景色 
    前景色一般是指文字的颜色 
    shOffsetColor: 指定颜色的偏移量,它的取值范围是[-255,255]。 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK : 函数执行成功。 
    BTNST_INVALIDINDEX : 由 byColorIndex 指定状态索引值无效。 
    BTNST_BADPARAM : 根据偏移量生成的值超出RGB的颜色取值范围。

    CButtonST::SetAlign 
    DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE) 
    注释: 
    调用此函数可以设定按钮上图标(或位图)于按钮上文字的相对位置。 
    参数: 
    byAlign: 位置参数,它的取值必须是以下枚举量之一。 
    取值注释 
    ST_ALIGN_HORIZ 图标/图片在左,文字在右 
    ST_ALIGN_VERT 图标/图片在上,文字在下 
    ST_ALIGN_HORIZ_RIGHT 图标/图片在右,文字在左 
    默认值为ST_ALIGN_HORIZ
    bRepaint: 为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。 
    BTNST_INVALIDALIGN: 位置参数无效。

    CButtonST::SetAlwaysTrack 
    DWORD SetAlwaysTrack(BOOL bAlwaysTrack = TRUE) 
    注释: 
    此函数只对平面按钮有效。调用此函数可以设定按钮是否显示高亮颜色。 
    参数: 
    bAlwaysTrack: 值为TRUE时,无论前窗口是否为激活窗口,只要鼠标指针移动到按钮上面都会发按钮的显示状态发生变化。默认值为TRUE。 
    值为FALSE时,如果窗口未被激活,按钮的显示不会发生变化。 
    返回值: 
    BTNST_OK : 函数执行成功。

    CButtonST::SetBitmaps

    DWORD SetBitmaps(int nBitmapIn, COLORREF crTransColorIn, int nBitmapOut = NULL, COLORREF crTransColorOut = 0)
    DWORD SetBitmaps(HBITMAP hBitmapIn, COLORREF crTransColorIn, HBITMAP hBitmapOut = NULL, COLORREF crTransColorOut = 0)
     
    • 1
    • 2
    • 1
    • 2

    注释: 
    调用此函数可以在按钮上显示指定的图片(Icon)。如果对同一个按钮重复调用了此函数的话,那么按钮只显示最后一次指定的图片。 
    参数: 
    nBitmapIn: 图片的ID值。当鼠标指针位于按钮之上时显示该图片。 
    crTransColorIn: 颜色值。ID为nBitmapIn的图片中与该颜色相同的区域将显示透明。 
    nBitmapOut: 图片的ID值。当鼠标指针不在按钮之上时显示该图片。 
    crTransColorOut: 颜色值。ID为nBitmapOut的图片中与该颜色相同的区域将显示透明。 
    hBitmapIn: 图片的句柄。当鼠标指针位于按钮之上时显示该图片。 
    crTransColorIn: 颜色值。由hBitmapIn指定的图片中与该颜色相同的区域将显示透明。 
    hBitmapOut: 图片的ID值。当鼠标指针不在按钮之上时显示该图片。 
    crTransColorOut: 颜色值。由hBitmapOut指定的图片中与该颜色相同的区域将显示透明。 
    返回值: 
    BTNST_OK: 函数执行成功。 
    BTNST_INVALIDRESOURCE: 指定资源读取失败。 
    BTNST_FAILEDMASK: 颜色提取失败。

    CButtonST::SetBtnCursor 
    DWORD SetBtnCursor(int nCursorId = NULL, BOOL bRepaint = TRUE) 
    注释: 
    这个函数可以让鼠标在移动到按钮上面的时候显示指定的鼠标指针。 
    参数: 
    nCursorId: 鼠标指针的ID值。 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。 
    BTNST_INVALIDRESOURCE: 读取指定资源失败。

    CButtonST::SetCheck 
    DWORD SetCheck(int nCheck, BOOL bRepaint = TRUE) 
    注释: 
    当按钮被当作CheckBox使用的时候,用来设置按钮的状态。 
    参数: 
    nCheck : 1表示选中; 0表示没选中 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。

    CButtonST::SetColor 
    DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE) 
    注释: 
    调用此函数可以设置按钮在各种状态下显示指定的底色。 
    参数: 
    byColorIndex : 状态索引值。具体含义可以参见OffsetColor函数中的参数(byColorIndex)说明。 
    crColor : 颜色值。设置按钮指定状态的底色。 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。 
    BTNST_INVALIDINDEX: 无效的状态索引值。

    CButtonST::SetDefaultColors 
    DWORD SetDefaultColors(BOOL bRepaint = TRUE) 
    注释: 
    调用此函数之后,程序将使用默认颜色来设定按钮在各个状态下的颜色。这些颜色值可能会因为Windows版本的不同而不同。 
    参数: 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。

    CButtonST::SetFlat 
    DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE) 
    注释: 
    调用此函数来设置按钮的显示风格。 
    参数: 
    bFlat: 值为TRUE则显示为平面按钮; 值为FALSE则显示为标准的Windows按钮 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。

    CButtonST::SetIcon 
    DWORD SetIcon(int nIconIn, int nIconOut = NULL) 
    DWORD SetIcon(HICON hIconIn, HICON hIconOut = NULL) 
    注释: 
    调用此函数可以在按钮上显示指定的图标(Icon)。如果对同一个按钮重复调用了此函数的话,那么按钮只显示最后一次指定的图标。 
    参数: 
    nIconIn : 图标的ID值,当鼠标指针移动到按钮上面的时候显示该图标。如果该参数被赋值为 NULL ,则分配给这个按钮的所有图标资源将被释放。
    nIconOut: 图标的ID值,当鼠标指针不在按钮上面的时候显示该图标。调用函数的时候可以忽略该参数。 
    hIconIn : 图标的句柄,当鼠标指针移动到按钮上面的时候显示该图标。如果该参数被赋值为 NULL ,则分配给这个按钮的所有图标资源将被释放。
    hIconOut: 图标的句柄,当鼠标指针不在按钮上面的时候显示该图标。调用函数的时候可以忽略该参数。 
    返回值: 
    BTNST_OK: 表示函数执行成功。 
    BTNST_INVALIDRESOURCE: 表示函数执行失败,例如无法读取指定的图标资源。

    CButtonST::SetMenu 
    DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bWinXPStyle = TRUE, UINT nToolbarID = NULL, CSize sizeToolbarIcon = CSize(16, 16), COLORREF crToolbarBk = RGB(255, 0, 255), BOOL bRepaint = TRUE) 
    DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bRepaint = TRUE) 
    注释: 
    要调用此函数必须与BCMenu类一起使用。函数将为按钮指派一个菜单,当点击按钮的时候会弹出所指派的菜单。此函数的调用与宏有关,如果在代码中声明了BTNST_USE_BCMENU 宏,则应该调用SetMenu函数的第一种形式,否则应该调用SetMenu的后一种形式。 
    参数: 
    nMenu : 菜单的ID值。 
    hParentWnd: 菜单所属的窗口句柄。菜单选项将触发该窗口内的时间。 
    bWinXPStyle: 值为TRUE则会以XP风格显示菜单, 值为FALSE则会以标准风格显示菜单。 
    nToolbarID: 工具条的ID值。程序会将工具条中与菜单项ID值相同图片加入到菜单中。 
    sizeToolbarIcon: 指定工具条中每一个图标的大小,它是一个CSize 类型的实例。注意请确保工具条中所有图标的大小一致。 
    crToolbarBk: 颜色值。工具条图片中与该颜色相同的区域将显示为透明。 
    bRepaint: 值为TRUE则马上重绘按钮。 
    返回值: 
    BTNST_OK: 函数执行成功。 
    BTNST_INVALIDRESOURCE: 无法读取指定资源。

    CButtonST::TooltipText 
    void SetTooltipText(int nText, BOOL bActivate = TRUE) 
    void SetTooltipText(LPCTSTR lpszText, BOOL bActivate = TRUE) 
    注释: 
    调用此函数可以为按钮设定提示信息。 
    参数: 
    nText: 字符串的ID值。 
    lpszText: 所要显示的字符串。 
    nActivate: 值为TRUE表示激活提示功能, 值为FALSE表示不激活提示功能。

    CButtonST::SetURL 
    DWORD SetURL(LPCTSTR lpszURL = NULL) 
    注释: 
    调用此函数后,单击按钮将打开参数所指定的连接。 
    参数: 
    lpszURL: 包含链接信息的字符串。 
    返回值: 
    BTNST_OK: 函数执行成功。


    CButtonST编译出错

    错误类型:error C4996: ‘GetVersionExW’: 被声明为已否决 
    解决办法:项目–>XXX属性–>C/C++–>常规–>SDL 检查–>否

    CButtonST下载地址:http://download.csdn.net/detail/zhengyanan815/9690645


    CButtonST的使用感悟

    1. 从原理上,其实CButtonST是重载了DrawItem函数,用起来比较不错。
    2. 但是并不能操作CStatic控件,但是其作者还写了CStaticST类,但是没有开放源码。
    3. 从自己要实现的功能上去看(就是实现指示灯的效果),用CStaticST类比较好。
    展开全文
  • Windows API (包含了所有Windows API)

    千次阅读 2016-02-18 21:57:46
    Windows API (包含了所有Windows API)Api函数名 函数说明 WIN16可用 WIN95可用 WINNT可用-------------------------------------------------------------------------
  • Windows7快捷键大全

    千次阅读 2013-07-28 23:10:58
    以下是官方发布的 Windows 7 操作系统快捷键的应用解释:   1. 轻松访问键盘快捷方式    按住右 Shift 八秒钟:启用和关闭筛选键    按左 Alt + 左 Shift + PrtScn (或 PrtScn):启用或关闭高对比度    按...
  • vc++按钮应用大全

    千次阅读 2012-02-19 10:53:37
    按钮是最常用的控件,使用也比较简单,因此介绍控件的用法就从按钮开始。本文计划通过四个阶段对按钮的使用进行详细阐述,即基础、进阶、高级、特殊。 一、基础应用 (一)在视图中创建按钮 示例程序:Button 1...
  • BS_3STATE 与复选框一样本样式按钮可被单击变暗。变暗状态通常用于指示本样式的按键正处于禁用状态。 BS_AUTO3STATE 与三状态的复选框一样当用户选中它本按钮样式状态外观会改变。 BS_AUTOCHECKBOX 与复选框一样...
  • Windows 10 64bit Anaconda3 with python 3.7 PyCharm 2020.1 简介 在任何GUI设计中,按钮都是最重要的触发请求动作的方式,用来与用户进行交互操作。在PyQt5中按钮的基类是QAbstractButton,它提供了按钮的通用...
  • Windows 7

    千次阅读 2010-03-31 19:00:00
    系统简介 系统名称:Windows 7 核心版本号:Windows NT 6.1 开发代号:Blackcomb及Windows Vienna 测试历史: 2007年12月20日 :windows 7 Milestone1(build 6519.1) 2008年12月12日 :windows 7 beta...
  • windows中的高级隐藏

    2008-04-22 14:12:00
    “查看”选项卡中选择“显示所有文件”,然后进入系统所在分区的根目录,右击“Recycled”文件夹选择“属性”命令,在“属性”对话框中勾选“启用缩略图查看方式”复选框,点击“应用”按钮。这样,系统就会自动将...
  • 多个按钮等(按钮也是窗口,之后解释)。那么,如果要生成多个窗口,我们可能就需要不止一个窗口回调函数,下面我们首先来介绍一下子窗口的概念,之后,再来了解windows系统为我们提供的一些控件窗口的使用。 子...
  • Windows标准控件

    千次阅读 2012-01-06 23:00:56
    使用Windows标准控件 我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。在Visual C++中,可以使用的控件分成三类: (1) Windows标准控件 Windows标准控件...
  • 第8章 Windows 8附件解析 之前我们已经了解了Windows 8的软硬件设备的管理和使用。本章将介绍Windows 8的附件等相关內容。Windows 8系统的附件中自带了许多实用软件,如写字板、计算器以及画图软件等。它们都是你...
  • 设置机身电源按钮和闭合笔记本计算机屏幕的作用 Windows 8默认设置在开机状态下,位于计算机机身上的开关按钮和闭合笔记本顶盖的作用为睡眠。其实还可以进行自定义的设置以快速应用更多省电模式。 在“控制面板”中...
  • HTControl之CHTButton按钮控件类

    千次阅读 2013-04-14 09:54:38
    HTControl之CHTButton按钮控件类     作者 李海涛 日期 2012-10-07   文档只是简要说明,在CHTButton.h中有各接口和变量的详细说明。还可以下载HTControlDemo进行...
  • 图5-47 5.3.2 显示复选框以方便单手多选文件 用户在处理文件时,有时会遇到同时选择多个文件的情况,除了传统的Ctrl键多选外,Windows 8还提供了复选框功能,帮助我们更加方便快捷地处理文件。 打开“计算机”中的...
  • windows内部运行机制

    千次阅读 2013-08-12 09:45:39
    Windows程序内部运行机制  要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制。本文将深入剖析Windows程序的内部运行机制,为读者扫清VC++学习路途中的第一个障碍,为进一步学习...
  • 在“等待”文本框中设置启用屏保的等待时间,另外还可根据需要选中“在恢复时显示登录屏幕”复选框,如图3-36所示。 图3-35 图3-36 需要注意的是,选择“3D文字”选项后,还可以单击“设置”按钮,在弹出的“3D文字...
  • Windows快捷键总汇(来自官方)

    万次阅读 多人点赞 2018-04-24 10:20:21
    Windows 10 键盘快捷方式就是按键或按键组合,可提供一种替代方式来执行通常使用鼠标执行的操作。其他键盘快捷方式应用中的键盘快捷方式用于辅助功能的 Windows 键盘快捷方式Microsoft Surface Hub 键盘快捷方式...
  • Windows 7 快捷键

    2013-05-09 20:48:29
    键盘快捷方式可使您与计算机的交互更容易,从而在使用Windows 和其他程序时节省您的时间和精力。 大多数程序还提供加速键,这些键可使使用菜单和其他命令变得更加容易。检查程序菜单中的加速键。如果菜单中某个...
  • Windows快捷键大全

    2015-05-14 18:01:06
    1. 常规键盘快捷方式  F1 显示帮助  Ctrl + C 复制选择的项目  Ctrl + X 剪切选择的项目 ... Ctrl + V 粘贴选择的项目  ... Delete 删除所项目并将其移动到“回收站” ... Shift + Delete 不先将所项目移
  • Windows窗体与控件

    万次阅读 2016-05-11 11:20:39
    学习下Window的窗体与控件,UI,我的IDE是VS2012,通过学习这些基本...Windows窗体窗体是应用程序的基本单元,是非常重要的。它实质上是一块白板,通过添加控件可以创建用户界面,并通过代码来操作数据,填充这个白板。
  • Windows API参考大全

    千次阅读 2012-08-21 10:01:24
     在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API 函数。这些函数在程序员手中犹如“积木块”一样,可搭建出各种界面丰富、功能灵活的应 用程序。不过,由于这些函数结构复杂,所以...
  • windows程序设计笔记

    千次阅读 2016-09-08 16:29:35
    WINAPI标识符在WINDEF.H中定义:...1:1)在Win32API中,长指针和短(近)指针是没有区别的,这只是16为Windows的遗物2):wndclass.lpfnWndProc=WndProc; 这条语句将这个窗口类类的窗口过程设置为WndProc,这个

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,607
精华内容 1,442
关键字:

windows复选按钮形状