win32强化练习4.2_菜单勾选与图标变换

这节练习是菜单勾选以及图标变换的,设定就是菜单中有两项,点击任意一项则此项打勾,并把图标设置成对应的。

运行结果如图:


步骤如下:

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
END
3.

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;






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值