win32强化练习4.2_菜单勾选与图标变换
2016-11-24 23:05
393 查看
这节练习是菜单勾选以及图标变换的,设定就是菜单中有两项,点击任意一项则此项打勾,并把图标设置成对应的。
运行结果如图:
![](https://img-blog.csdn.net/20161124225655798)
步骤如下:
1. 建立windows标准窗口程序(用模板建立),加入.rc文件和resource.h文件
2. 将菜单的资源和两个图标资源都加入到rc文件中并在resource.h中进行#define
3. 声明全局变量hMenu并直接在注册窗口类里loadMenu
4. 声明全局变量hIcon1,hIcon2,并在创建窗口下方loadIcon
5. 处理WM_COMMAND消息,当菜单点击时,打勾并SetIcon
程序如下:
2.
#include "resource.h"
#include <windows.h>
IDI_ICON1 ICON "res/icon1.ico"
IDI_ICON2 ICON "res/icon2.ico"
/////////////////////////////////////////////////////////////////////////////
// Menu
IDC_WINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "ICON1", IDM_ICON1
MENUITEM "ICON2", IDM_ICON2
END
POPUP "&Help"
BEGIN
MENUITEM "&About ...", IDM_ABOUT
END
END3.
HMENU hMenu;
HICON hIcon1,hIcon2;
switch (LOWORD(wParam))
{
case IDM_ICON1:
{
CheckMenuItem(hMenu, IDM_ICON1, MF_CHECKED);
CheckMenuItem(hMenu, IDM_ICON2, MF_UNCHECKED);
SendMessage(hWnd, WM_SETICON, 0, (LPARAM)hIcon1);
}
break;
case IDM_ICON2:
{
CheckMenuItem(hMenu, IDM_ICON2, MF_CHECKED);
CheckMenuItem(hMenu, IDM_ICON1, MF_UNCHECKED);
SendMessage(hWnd, WM_SETICON, 0, (LPARAM)hIcon2);
}
break;
运行结果如图:
步骤如下:
1. 建立windows标准窗口程序(用模板建立),加入.rc文件和resource.h文件
2. 将菜单的资源和两个图标资源都加入到rc文件中并在resource.h中进行#define
3. 声明全局变量hMenu并直接在注册窗口类里loadMenu
4. 声明全局变量hIcon1,hIcon2,并在创建窗口下方loadIcon
5. 处理WM_COMMAND消息,当菜单点击时,打勾并SetIcon
程序如下:
2.
#include "resource.h"
#include <windows.h>
IDI_ICON1 ICON "res/icon1.ico"
IDI_ICON2 ICON "res/icon2.ico"
/////////////////////////////////////////////////////////////////////////////
// Menu
IDC_WINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "ICON1", IDM_ICON1
MENUITEM "ICON2", IDM_ICON2
END
POPUP "&Help"
BEGIN
MENUITEM "&About ...", IDM_ABOUT
END
END3.
HMENU hMenu;
HICON hIcon1,hIcon2;
hMenu = GetMenu(hWnd); hIcon1 = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); hIcon2 = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));5.
switch (LOWORD(wParam))
{
case IDM_ICON1:
{
CheckMenuItem(hMenu, IDM_ICON1, MF_CHECKED);
CheckMenuItem(hMenu, IDM_ICON2, MF_UNCHECKED);
SendMessage(hWnd, WM_SETICON, 0, (LPARAM)hIcon1);
}
break;
case IDM_ICON2:
{
CheckMenuItem(hMenu, IDM_ICON2, MF_CHECKED);
CheckMenuItem(hMenu, IDM_ICON1, MF_UNCHECKED);
SendMessage(hWnd, WM_SETICON, 0, (LPARAM)hIcon2);
}
break;
相关文章推荐
- win32强化练习4.1_更改别人的菜单
- win32强化练习4.6_自定义图标或图像的工具栏
- win32强化练习3.6_贪吃蛇半部
- win32强化练习3.3_定时器与弹球
- win32强化练习4.5_标准工具栏的使用
- win32强化练习2.2_单选与复选控件
- win32强化练习0.1_开发环境搭建
- win32强化练习4.4_状态栏、坐标与时钟
- win32强化练习2.3_四则计算器(组合框控件)
- win32强化练习4.3_粗糙的SPY获取别人的窗口
- win32强化练习1.1_MessageBox简单应用及手动编译
- win32强化练习2.4_双击播放MP3(列表框与通知码)
- win32强化练习4.7_快速建立TreeView
- win32强化练习5.1_动画秒表(位图初步)
- Win32编程API 基础篇 -- 6.菜单和图标
- win32强化练习3.4_绘制坦克及四向移动(键盘进阶)
- win32进阶之路:程序托盘图标+右键弹出菜单
- win32强化练习2.0_手工打造自己的对话框程序模板
- win32强化练习2.5_滚动条初步
- win32菜单练习复习