zoukankan      html  css  js  c++  java
  • 【VC++学习笔记三】控件自绘

          MFC应用程序中,大部分的控件类型都已经被定制好了,即便是修改,也只是小范围内的修改,而很多情况下,我们又需要对界面进行特殊定制,这时,最好的办法就是用CWnd类进行派生,自己生成新的窗体,在WM_PAINT消息中,进行控件的自绘,创建时,也只需要在主窗体的创建语句中加上就能显示了,下面是一个简单的控件创建过程:

    如果什么都不处理的话,需要重载注册窗口类,才能显示,父窗口的WM_SIZE函数需要重载以相应对窗口变化的处理。

     

    BOOL CCustomerWnd::PreCreateWindow(CREATESTRUCT& cs)

    {

    HINSTANCE hInstance = (HINSTANCE)AfxGetInstanceHandle();

    ASSERT(hInstance);

     

    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

     

    BOOL bRet = GetClassInfoEx(hInstance,cs.lpszClass,&wcex);

    if (bRet)

    {

    return TRUE;

    }

     

    wcex.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;

    wcex.lpfnWndProc = AfxWndProc;

    wcex.cbClsExtra = 0;

    wcex.cbWndExtra = 0;

    wcex.hInstance = hInstance;

    wcex.hIcon = wcex.hIconSm = (HICON)::LoadIcon(hInstance,MAKEINTRESOURCE(IDR_MAINFRAME));

    wcex.hCursor = (HCURSOR)::LoadCursor(NULL,IDC_ARROW);

    wcex.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);

    wcex.lpszMenuName = NULL;

    wcex.lpszClassName = cs.lpszClass;

     

    bRet = RegisterClassEx(&wcex);

     

    return bRet;

    }

  • 相关阅读:
    jquery
    模板库
    Luogu P1902 刺杀大使
    8.20模拟赛再次观光记
    Luogu P1122 最大子树和
    Luogu P1470 最长前缀 Longest Prefix
    8.18爆炸记
    Luogu P1388 算式
    Luogu P1103 书本整理
    8.17
  • 原文地址:https://www.cnblogs.com/OldGlory/p/3588643.html
Copyright © 2011-2022 走看看