MFC笔记2:定制应用程序外观

一、在窗口创建之前修改

1、修改应用程序窗口大小

         窗口创建之前:

BOOLCMainFrame::PreCreateWindow(CREATESTRUCT& cs)

         cs.cx=300;  cs.cy=500; //窗口大小

         cs.lpszName=”定制应用程序外观”;  

cs.style=WS_OVERLAPPEDWINDOW;             或 cs.style &=~FWS_ADDTOTITLE;

窗口创建之后:

SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);//改变窗口类型

在已有类型上进行修改:

SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE)&~WS_MAXIMIZEBOX);   //去掉窗口的最大化功能

2、修改窗口光标、图标

窗口创建修改视类窗口:

cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,LoadCursor(NULL,IDC_CROSS),(HBRUSH)GetStockObject(BLACK_BRUSH),0);

 

窗口创建后修改光标、图标:

         SetClassLong():重置指定窗口所属类中指定数据成员的属性;

3、模拟动画图标

(1)插入图标资源;

(2)定义HICON类型的图标句柄数组成员变量,m_hIcons[3];

(3)加载图标;

m_hIcons[0]=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1));

m_hIcons[1]=LoadIcon(theApp.m_hInstance,MAKEINTRESOURCE(IDI_ICON2));

m_hIcons[2]=LoadIcon(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON3));

SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcons[0]);

SetTimer(1,1000,NULL);

(1)       定时器函数实现;

voidCMainFrame::OnTimer(UINT nIDEvent)

{

   // TODO: Add your message handler code hereand/or call default

   static  int  index=0;

   SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcons[index]);

   index=++index%3;

   CFrameWnd::OnTimer(nIDEvent);

}

(6)消息响应COMMAND 和 UPDATE_COMMAND_UI的区别

  ON_COMMAND是点了按钮或菜单项后的响应消息,
ON_UPDATE_COMMAND_UI是用来表示对应的按钮和菜单项的状态的响应消息.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值