dialog.cpp

来自「一个更为先进的嵌入式操作系统.采用RMS线程调度算法,具有信号量等同步对象.亦包」· C++ 代码 · 共 70 行

CPP
70
字号
#include "gos.h"
#include "dialog.h"

LRESULT CDialog::MsgProc(UINT message, WPARAM wParam, LPARAM lParam)
{
	switch(message)
	{
	case WM_DRAWITEM:
		break;
	case WM_DESTROY:
		OnDestroy();
		break;
	case WM_CLOSE:
		OnClose();
		break;
	case WM_CREATEDIALOG:
		OnCreateDialog();
		break;
	case WM_CREATE:
		OnCreate();
		break;
	default:
		wParam=CPWnd::MsgProc(message,wParam,lParam);
	}
	return wParam;
}

void CDialog::OnCreateDialog()
{
	CRect r;
	g_pDesktop->GetDlgMaxmizeRect(r);
	CPWnd::Create(GetStyle()|WS_MAXIMIZE,r,g_pDesktop);
	Invalidate(r);
}

void CDialog::OnCreate()
{
	GetParent()->SetActiveControl(this,PW_FOCUSCHAIN);
}

void CDialog::OnDestroy()
{
	PPWND pParent=GetParent();
	pParent->Invalidate(GetWindowRect());
	CPWnd::OnDestroy();
	pParent->RemoveControl(this);
}

int CDialog::DoModal()
{
	AddStyle(WS_MODALDLG);
	MsgProc(WM_CREATEDIALOG,0,0);
	PostMessage(WM_INITDIALOG,0,0);

	CThread* pThread=GetMQThread();
	MSG msg;
	while(pThread->GetMessage(&msg,INFINITE) &&
		!(msg.message==msgQuit && msg.pObj==this))
	{
		pThread->DispatchMessage(&msg);
	}
	DestroyWindow();
	RemoveStyle(WS_MODALDLG);
	return msg.wParam;
}




⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?