VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 971|回复: 1

[已解决]MFC的一个小问题。

[复制链接]
08_avatar_middle
最佳答案
10 
在线会员 发表于 2021-4-29 18:53:29 | 显示全部楼层 |阅读模式
本帖最后由 SummerGull 于 2021-4-29 20:57 编辑

我想要去改变MFC类的名称,我已经在preCreateWindow里面重写了 ,也在 xx->Create里面指定了 类名。为什么窗口不显示了?
  1. #include <afxwin.h>

  2. class CMyApp : public CWinApp
  3. {
  4. public:
  5.         virtual BOOL InitInstance();

  6. };

  7. class CMainWnd : public CFrameWnd
  8. {
  9. public:
  10.         virtual BOOL PreCreateWindow(CREATESTRUCT &cs);
  11. };


  12. CMyApp                theApp;

  13. BOOL CMyApp::InitInstance()
  14. {
  15.         CMainWnd* CW = new CMainWnd();

  16.         CW->Create(NULL, TEXT("我是一个窗口"));
  17.         CW->ShowWindow(SW_SHOW);
  18.         CW->UpdateWindow();

  19.         m_pMainWnd = CW;
  20.         return true;
  21. }


  22. BOOL CMainWnd::PreCreateWindow(CREATESTRUCT& cs)
  23. {
  24.         // Call the base-class version
  25.         if (!CFrameWnd::PreCreateWindow(cs))
  26.                 return FALSE;

  27.         // Create a window without min/max buttons or sizable border
  28.         cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

  29.         // Size the window to 1/3 screen size and center it
  30.         cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
  31.         cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
  32.         cs.y = ((cs.cy * 3) - cs.cy) / 2;
  33.         cs.x = ((cs.cx * 3) - cs.cx) / 2;
  34.         cs.lpszClass = TEXT("MyWnd");//这句代码写入了 无法显示窗口了
  35.        
  36.         return TRUE;
  37. }
复制代码
最佳答案
87_avatar_small
2021-4-30 18:11:46
本帖最后由 cqzj70 于 2021-4-30 18:16 编辑

你这种无文档的创建窗口如下:

CMainFrame* pFrame = new CMainFrame;
                if (!pFrame)
                        return FALSE;
                // 创建并加载框架及其资源
                pFrame->LoadFrame(IDR_MAINFRAME,
                        (WS_OVERLAPPEDWINDOW&(WS_SYSMENU)) | FWS_ADDTOTITLE, NULL,
                        NULL);

                if (!IsWindow(pFrame->GetSafeHwnd()))
                        return FALSE;

                m_pMainWnd = pFrame;
                m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
                m_pMainWnd->UpdateWindow();

   LoadFrame这个函数就包含了你Create这个函数




上一篇:关于vc处理高并发要如何来实现?
下一篇:请教一个用HTTP提交图片的问题。
87_avatar_middle
最佳答案
16 
在线会员 发表于 2021-4-30 18:11:46 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 cqzj70 于 2021-4-30 18:16 编辑

你这种无文档的创建窗口如下:

CMainFrame* pFrame = new CMainFrame;
                if (!pFrame)
                        return FALSE;
                // 创建并加载框架及其资源
                pFrame->LoadFrame(IDR_MAINFRAME,
                        (WS_OVERLAPPEDWINDOW&(WS_SYSMENU)) | FWS_ADDTOTITLE, NULL,
                        NULL);

                if (!IsWindow(pFrame->GetSafeHwnd()))
                        return FALSE;

                m_pMainWnd = pFrame;
                m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
                m_pMainWnd->UpdateWindow();

   LoadFrame这个函数就包含了你Create这个函数

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
08_avatar_small SummerGull + 2 + 2 很给力!

查看全部评分

08_avatar_middle
最佳答案
10 
ico_lz  楼主| 发表于 2021-4-29 19:03:49 | 显示全部楼层
本帖最后由 SummerGull 于 2021-4-29 20:45 编辑

怎么去设置指定MFCframe类名
87_avatar_middle
最佳答案
16 
在线会员 发表于 2021-4-30 17:59:45 | 显示全部楼层
难道你想修改CFrameWnd类名?只能派生!派生了不就把名字改了!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-29 16:23

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表