Unicode转成用多字符集编译图标无法显示

hell190109 2017-12-07 02:51:28

程序用Unicode编译时SetIcon的图标能显示,用多字符集编译图标无法显示。怎么让多字符集编译也能正常显示。
我用的是vs2013。
BOOL CMFCTest2Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
。。。。。。。。。。。。。。。。。。。。。。
// TODO: 在此添加额外的初始化代码
HICON m_hicn1=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
((CButton*)GetDlgItem(IDC_BUTTON1))->SetIcon(m_hicn1);
return TRUE;

}
...全文
482 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
mark一下
hell190109 2017-12-09
  • 打赏
  • 举报
回复
引用 16 楼 schlafenhamster 的回复:
"多字符集编译程序本身就是有个没法显示图标问题吗?" 没有 ! 属性 要自己改 Icon 不是 默认的!
可是用unicode时,按键Icon属性是False,SetIcon也好使,图标和文字都正常。
schlafenhamster 2017-12-09
  • 打赏
  • 举报
回复
没有用过 “可是用unicode时” 1 资源中 看看 是不是 有 2 用 DWORD Style=GetWindowLong(m_Button.m_hWnd,GWL_STYLE);看看 风格 有没有 BS_ICON
schlafenhamster 2017-12-08
  • 打赏
  • 举报
回复
给你一个 在 对话框OnPaint 中 给 这个按钮 补一个 Caption 的 方法: else { CDialog::OnPaint(); m_Bt5.RedrawWindow();// 使按钮 客户区 有效 CDC *pDC=m_Bt5.GetDC(); pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(255,0,0)); pDC->TextOut(20,14,"A",1); ReleaseDC(pDC); }
schlafenhamster 2017-12-08
  • 打赏
  • 举报
回复
按钮 ICon 属性后 没有 Caption 要 在 OnPaint 中 自己 画,所以 又回到 “自绘” 去了
schlafenhamster 2017-12-08
  • 打赏
  • 举报
回复
"多字符集编译程序本身就是有个没法显示图标问题吗?" 没有 ! 属性 要自己改 Icon 不是 默认的!
schlafenhamster 2017-12-08
  • 打赏
  • 举报
回复
"按键一点字就没了。" 因为 按钮 状态变了,所以 还是 放 派生 按钮 的 Onpaint 中。
spicemodel 2017-12-08
  • 打赏
  • 举报
回复
hell190109 2017-12-08
  • 打赏
  • 举报
回复
引用 12 楼 schlafenhamster 的回复:
给你一个 在 对话框OnPaint 中 给 这个按钮 补一个 Caption 的 方法: else { CDialog::OnPaint(); m_Bt5.RedrawWindow();// 使按钮 客户区 有效 CDC *pDC=m_Bt5.GetDC(); pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(255,0,0)); pDC->TextOut(20,14,"A",1); ReleaseDC(pDC); }
按键一点字就没了。 多字符集编译程序本身就是有个没法显示图标问题吗?我新建的dialog工程,就放一个按钮,显示图标就会出这个问题。
hell190109 2017-12-07
  • 打赏
  • 举报
回复
引用 9 楼 schlafenhamster 的回复:
按钮 属性 要 加 ICon !
Icon原来是False,设成True以后图标终于是显示出来了,但是按钮上字没有了,用SetWindowText也不灵,只有图标,没有字。
schlafenhamster 2017-12-07
  • 打赏
  • 举报
回复
按钮 属性 要 加 ICon !
hell190109 2017-12-07
  • 打赏
  • 举报
回复
引用 7 楼 schlafenhamster 的回复:
资源 xxx。rc 用 记事本 打开 后 另存为 ansi ,
另存为 ansi 以后重新编译还是不行,还是显示不出来。 另外我试了下设置窗口左上角的图标是可以显示出来的 HICON m_hicn1=AfxGetApp()->LoadIcon(IDI_ICON1); SetIcon(m_hicn1, TRUE); // 设置大图标 SetIcon(m_hicn1, FALSE); // 设置小图标 在按钮上显示不出来。
schlafenhamster 2017-12-07
  • 打赏
  • 举报
回复
资源 xxx。rc 用 记事本 打开 后 另存为 ansi ,
hell190109 2017-12-07
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
HICON m_hicn1=AfxGetApp()->LoadIcon(IDR_MAINFRAME); // 资源文件中含有名称,如 IDR_MAINFRAME ICON DISCARDABLE "RES\\TEST.ICO" 要改
引用 5 楼 schlafenhamster 的回复:
HICON m_hicn1=AfxGetApp()->LoadIcon(IDR_MAINFRAME); // 资源文件中含有名称,如 IDR_MAINFRAME ICON DISCARDABLE "RES\\TEST.ICO" 要改
怎么改?
schlafenhamster 2017-12-07
  • 打赏
  • 举报
回复
HICON m_hicn1=AfxGetApp()->LoadIcon(IDR_MAINFRAME); // 资源文件中含有名称,如 IDR_MAINFRAME ICON DISCARDABLE "RES\\TEST.ICO" 要改
zgl7903 2017-12-07
  • 打赏
  • 举报
回复
建议 修改成 BS_OWNERDRAW 自绘属性, 关联 CBitmapButton 实现, 估计是控件底层处理的有差异
hell190109 2017-12-07
  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
HICON m_hicn1 修改为类变量试试看, 是不是作用域的问题?
.h HICON m_hicn1 //声明在.h里 .cpp // TODO: 在此添加额外的初始化代码 m_hicn1=AfxGetApp()->LoadIcon(IDR_MAINFRAME); ((CButton*)GetDlgItem(IDC_BUTTON1))->SetIcon(m_hicn1); 这样也不行。
zgl7903 2017-12-07
  • 打赏
  • 举报
回复
HICON m_hicn1 修改为类变量试试看, 是不是作用域的问题?
Uncle_higo 2017-12-07
  • 打赏
  • 举报
回复
调试时看看m_hicn1 会不会得到?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧