开始笔记 一.
首先新建一个窗口类,我写好了,直接复制进去
class CChildFrame : public CFrameWnd
{
private:
public://公开下面的类成员函数
afx_msg void OnPaint();//<span style="font-family: 宋体; font-size: 14px; line-height: 25px; text-indent: 28px;">WM_PAINT消息,直接写好了,不喜欢就自己添加消息</span>
CChildFrame();//类被调用后初始化
};
把上面代码复制到MFAppView.h头文件中,如果你的XXXXView.h就是复制到这个头文件中的空白地方粘贴进去
二.完成上面的类函数的实现
CChildFrame::CChildFrame()//这个窗口类的初始化
{
Create(NULL, L"MFC Tutorial Part 1 CoderSource Window");
}
void CChildFrame::OnPaint()//消息对应<span style="font-family: Arial, Helvetica, sans-serif;">CChildFrame</span>窗口类
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CDC *pDC = GetDC();
CBrush brush(RGB(0, 0, 0));
CBrush *pOldBrush = pDC->SelectObject(&brush);
pDC->Rectangle(0, 0, 500, 500);
pDC->SelectObject(pOldBrush);
// Do not call CFrameWnd::OnPaint() for painting messages
}
把上面的代码复制到XXXXX.View.cpp源文件随意空白处
三.调用这个类创建窗口
在MFApp.h中的class CMFAppApp 类中声明一个CFrameWnd* 指针 名字叫做随意我的是m_CChildFrame
然后在MFApp.cpp源文件中找到BOOL CMFAppApp::InitInstance() 这个初始化函数
然后复制这段代码
m_CChildFrame = new CChildFrame(); // 创建新窗口类
SetWindowLong(m_CChildFrame->m_hWnd, GWL_EXSTYLE, GetWindowLong(m_CChildFrame->m_hWnd, GWL_EXSTYLE) ^ 0x80000);
HINSTANCE hInst = LoadLibrary(L"User32.DLL");
if (hInst)
{
typedef BOOL(WINAPI *MYFUNC)(HWND, COLORREF, BYTE, DWORD);
MYFUNC fun = NULL;
//取得SetLayeredWindowAttributes函数指针
fun = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if (fun)
{
fun(m_CChildFrame->m_hWnd, 0, 255, 2);//255是透明度
}
FreeLibrary(hInst);
}
// 唯一的一个窗口已初始化,因此显示它并对其进行更新
m_CChildFrame->ShowWindow(SW_SHOW);
m_CChildFrame->UpdateWindow();
粘贴到 return TRUE; 这个返回的前面
运行效果如下: