TOP

MFC中自定义窗口类名
2014-11-12 18:30:06 】 浏览:4719
Tags:MFC 定义 窗口 类名

  MFC中封装很多常用的控件,把类名也给封装了,没有提供明显的接口出来,用win api写窗口程序,第一步就是注册窗口类


  此时类名和标题名是一起注册的,所以能把标题很好地让用户来设定,类名也应该是很简单的,可惜的是MFC没有这样做,原因也许是window name可以不停的改,而类名不能。窗口的类名是有Create来确定的,要在Create前,给窗口选择一个已经注册的窗口类名,作为参数窗口 Create就ok了,CWnd的Create最终还是到了CreateEx中来,看看CreateEx就会清楚许多


  BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,


  LPCTSTR lpszWindowName, DWORD dwStyle,


  const RECT& rect, CWnd* pParentWnd, UINT nID,


  LPVOID lpParam /* = NULL */)


  {


  return CreateEx(dwExStyle, lpszClassName, lpszWindowName, dwStyle,


  rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,


  pParentWnd->GetSafeHwnd(), (HMENU)(UINT_PTR)nID, lpParam);


  }


  BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,


  LPCTSTR lpszWindowName, DWORD dwStyle,


  int x, int y, int nWidth, int nHeight,


  HWND hWndParent, HMENU nIDorHMenu, LPVOID lpParam)


  {


  ASSERT(lpszClassName == NULL || AfxIsValidString(lpszClassName) ||


  AfxIsValidAtom(lpszClassName));


  ENSURE_ARG(lpszWindowName == NULL || AfxIsValidString(lpszWindowName));


  // allow modification of several common create parameters


  CREATESTRUCT cs;


  cs.dwExStyle = dwExStyle;


  cs.lpszClass = lpszClassName;


  cs.lpszName = lpszWindowName;


  cs.style = dwStyle;


  cs.x = x;


  cs.y = y;


  cs.cx = nWidth;


  cs.cy = nHeight;


  cs.hwndParent = hWndParent;


  cs.hMenu = nIDorHMenu;


  cs.hInstance = AfxGetInstanceHandle();



MFC中自定义窗口类名 https://www.cppentry.com/bencandy.php?fid=80&id=11909

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇c++文件流基本用法 下一篇Unicode快速指引