读书人

一下子就~OK 了解决办法

发布时间: 2012-01-31 21:28:41 作者: rapoo

一下子就~OK 了

大家说说啊:

①: 怎样在 程序 刚启动完时,
执行特定的函数代码(比如AfxMessageBox(……) )?


②: 多字节字符集 与 unicode 字符集 什么不同 。
什么情况用那个啊?

我改了项目的字符集属性,比如 把原先的unicode改成 多字节字符集 会发生什么变化 ?

[解决办法]
1. 没有“刚启动完”这样的消息。不过你可以在WM_PAINT之类消息时做,但要做标志,下次WM_PAINT不再messagebox。
2. 字符内部编码不同。tchar.h
[解决办法]
1.你可以在C***App类的构造函数里或者InitInstance()函数里添加你想要程序开始执行的代码,比如:AfxMessageBox( "开始执行程序了... ");
2.由于刚开始用的都是英文字母,所以字符集中字符宽度比较小,后来加入其他字符集比如中文,西班牙语等,字符宽度需要变宽以支持相应的语言,这是根据不同的标准制定的,记不太清了,大概是这个意思吧...
[解决办法]
1、取决于你什么时候算“启动完”。

2、项目设置只是影响一些默认值,比如MessageBox这个宏定义,是定义为MessageBoxA还是MessageBoxW,而这两个函数所要求的参数类型不同,前者是char*,后者是wchar_t*。
不过你还是可以在unicode里面用多字符集,或者在多字符里面用unicode,这个要随机应变。
既然你现在不知道这个,可以先不管,都先用多字符集好了。
[解决办法]

MessageBox() 会暂停程序的启动啊

比如我要在 程序 界面完全出来后 显示 密码输入对话框 该怎么办

------
正如ls说的

在initinstance中调对话框就行..!
[解决办法]
原先的unicode改成 多字节字符集 会发生什么变化
这句话我不太明白什么意思??
char是单字节的,wchar即unicode格式的,使双字节的。最明显的区别
如char a= "ni号 " len=4
wchar a= "ni号 " len=6
上述语法有错哦

[解决办法]
LS这样说容易误导别人的:
char a[]= "ni号 ";
strlen(a)为4,
sizeof(a)为5。
wchar_t a[]=L "ni号 ";
strlen((char*)a)为1,因为unicode的 'n '的第二个字节已经是 '\0 '了。
wcslen(a)w为3, 'n '、 'i '、 '号 ',共三个unicode字符。
sizeof(a)为8。

读书人网 >VC/MFC

热点推荐