VC常见问题20110217

1

编译时遇到下面错误:
  F:\Program Designer\Program\c++\CloseWindow\CloseError.rc (70): error RC2176 : old DIB in res\ProgramDefaults.ico; pass it through SDKPAINT
    这是由于载入的资源文件(ProgramDefaults.ico)是真彩色,即3个字节的,而VC6.0只支持256色,因此出现错误!

接近方法:用图标小作坊修改

2
MFC里的函数前面加::是什么意思
如果::前是空的,那么是全局对象,具体点说就是Window API的函数
::ReleaseCapture();表示是当前默认的类的函数。比如:  
  CDialog类的函数OnCreate(),你可以在该类的某个函数里调用该类的另一个函数。  
  CDialog::OnCreate()  
  {  
  ::OK();//该函数的类是CDialog,在这里可以缺省。  
  }  

::ReleaseCapture();就是调用全局的ReleaseCapture();  
  即:不通过CWnd等类,直接调用Windows   API

 3

 成员函数后加const,表示:类作者提示你,这个函数不会导致对象状态改变  
  可以理解为"表示这个函数不会修改任何成员变量"  
  但不可绝对化。其实,还是可以修改由mutable关键字修饰的成员变量的。    
  当同时有带   const   和不   带const   的版本时  
  常量对象(ie:   const   SomeClass   obj)   调用前者,非常量对象(SomeClass   obj)使用后者。  

非const对象一样可以调用const成员函数。const成员函数表示,这个函数不会修改类成员,除非成员加了修改mutable或者你在函数中主动使用了const_cast!它与普通成员函数就没有其他区别了。

4

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
是消息处理函数的声明部分,
afx_msg前缀没有别的功能,只是用来提示这是一个消息处理函数

5

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

比如WINDOWS自带的记事本程序,它的"格式"菜单下有个"自动换行",那么在编写记事本这个程序时,对文本进行自动换行或不自动换行的操作就要放在ON_COMMAND消息响应函数里,而"自动换行"菜单项左边是否打勾的操作则放在ON_UPDATE_COMMAND_UI响应函数里.

 5

int *n;
int m;
m = 100;
n = &m;
这样n就是一个指向m变量的整数型指针,修改*n相当于修改m

void fun(int &m)

函数使用引用变量

 6

ERROR: cannot reuse string constants

原因:字符串ID值为61446

解决方法:重新建一个IDS相同字符串,然后把61446那条删掉,把61446空出来。

7

void CALLBACK EXPORT TimerProc(HWND hWnd,UINT nMsg,  
  UINT nIDEvent,DWORD dwTime); 

该回调函数不是类的成员。

 8

可能会遇到的问题即设置状态栏上的文字后不会显示原因分析:

1)、设置字体是在原有的大写与数字栏等上。这样只有在打开键盘的大写键或数字键时才会显示。因为大写栏与数字栏的设置是由系统自动完成的,只有在触发其相应的消息时,才会显示。

2)、自己新加的,确实不显示(有的显示,有的不显示,我遇到的是第二栏不显示)。原因是如果我们不为状态栏添加UPDATE的处理函数,MFC会自动禁止状态栏的该栏(pane)。为其相应栏添加UPDATE的处理函数即可。

例如:MainFrm.h中添加

afx_msg void OnUpdatebar(CCmdUI *pCmdUI);

MainFrm.cpp中添加

ON_UPDATE_COMMAND_UI(ID_INDICATOR_BAR, OnUpdatebar)

实现函数:

void CMainFrame::OnUpdatebar(CCmdUI *pCmdUI)
{
pCmdUI->Enable();

 }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值