MFC编程细节

MFC编程细节

1. 禁止改变窗口大小
  • 首先以文本方式打开项目窗口的“.rc”文件;
  • 找到下面这行代码

STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME

  • 修改为以下代码即可。

STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU & (~WS_THICKFRAME)

即将| WS_THICKFRAME变为& (~WS_THICKFRAME)形式。

2. 异常解决

虽然编码经验不是很丰富,但碰到异常时,一定不要灰心丧气。通常做法:

  1. 点“继续”,查看自己文件中的哪行语句出了错误。
  2. 再逐行(F11)或逐过程(F10),进行调试,同时对关键变量添加监视,观察变量的取值。
  3. 如果还没找出,还可把变量的值打印出来,确定是不是自己想要的。
    (有待补充)
3. 添加状态栏

情景:因为编写的图片处理程序处理时间较长,为了用户使用友好,状态栏在处理前设置为“就绪”,用户等待时设置为“处理中…”,处理完设置为“就绪”。
实现 :

  1. 打开资源视图,选中String Table,右键“添加资源”。
    在这里插入图片描述
  2. 然后在第二行键入状态栏ID(IDS_Status)和标题(处理中…)。
    在这里插入图片描述
  3. 在xxDlg.h文件中添加状态栏变量:CStatusBarCtrl m_StatusBar;
    在这里插入图片描述
  4. 在xxDlg.cpp的OnInitDialog()中,“// TODO: 在此添加额外的初始化代码”之后,添加如下语句:
m_StatusBar.Create(WS_CHILD | WS_VISIBLE | SBT_OWNERDRAW, CRect(0, 0, 0, 0), this, 0);
int strPartDim[1] = { 100}; //分割数量
m_StatusBar.SetParts(1, strPartDim);	
m_StatusBar.SetText(_T("就绪"), 0, 0);	//设置状态栏的初始文本

        运行程序,可看到对话框上状态栏的初始值是“就绪”。

  1. 更改状态栏。在处理函数的开头设置为“处理中…”,处理结束后设置为“就绪”。
void function_process(){
m_StatusBar.SetText(_T("处理中..."), 0, 0);
do sth...
m_StatusBar.SetText(_T("就绪"), 0, 0);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值