在资源编辑器中,选中任意一个toolbar的图标,拉伸大小,即可改变整个工具栏的高度和宽度。\x0d\但从CMenu继承的标准菜单栏是没法改变宽高的,一般来说,只能通过重载后DrawItem修改字体大小来改变高度,宽度可以通过空格或者\t制表符来控制。\x0d\另外,WM_MEASUREITEM消息可以更改d出菜单的高度,但对MFC标准菜单貌似无效,重载后有些和MFC框架的冲突。\x0d\其实网上有很多自绘菜单类的例子,一般都是通过重载后DrawItem实现的,可以改变大小高度。
回答的不一定标准。但实践可行。
++++++++++++++++++++++++++
已知一文本文件位于C:\czechtxt内容如下
čeština
查看属性为7字节。
建立一个对话框程序,
CStatic 控件ID为IDC_STATIC
++++++++++++++++++++++++++
#include <localeh>
#define BUFFER 20
-----------------------------------------
函数内部实现:
int ReadCzech{
CStatic outs = (CStatic) GetDlgItem(IDC_STATIC);
CFile file;//不能用CSTDIOFILE;
if (!fileOpen(_T("c:\\ffftxt"),CFile::modeRead) )
{
outs->SetWindowTextW(_T("false"));
return 1;
}
char chars[BUFFER];//读取时的字符缓冲,最好取大一些;
UINT nBytes = (UINT) fileGetLength();//获得文件大小;
if (BUFFER < nBytes) return 2;//缓冲区过小,具体处理请自行添加;
_locale_t czech = _create_locale(LC_ALL,"czech");//创建Locale结构体;
fileRead(chars,nBytes);//读文件;
WCHAR wchars[BUFFER];
size_t wcharsize;
_mbstowcs_s_l(&wcharsize,wchars,nBytes2,chars,BUFFER,czech);//转换字符集;
CString reads;
reads = wchars;
readsTrim(_T(""));//去掉多余的乱码;
outs->SetWindowTextW(readsGetBuffer());
_free_locale(czech);//按照MSDN的说法,创建一个locale,必须对应释放;
fileClose();
return 0;
}
手动实验结果,希望能够多给点分。
以上就是关于MFC单文档程序的菜单栏怎么修改高度和宽度全部的内容,包括:MFC单文档程序的菜单栏怎么修改高度和宽度、我想通过MFC读取txt文档里的捷克语,显示出来的也是捷克语,txt文档时ansi格式的。。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)