本文整理汇总了C++中MainForm::CreateEx方法的典型用法代码示例。如果您正苦于以下问题:C++ MainForm::CreateEx方法的具体用法?C++ MainForm::CreateEx怎么用?C++ MainForm::CreateEx使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MainForm
的用法示例。
在下文中一共展示了MainForm::CreateEx方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitInstance
//.........这里部分代码省略.........
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
NULL);
*/
// Register your unique class name that you wish to use
WNDCLASS wndcls;
memset(&wndcls, 0, sizeof(WNDCLASS)); // start with NULL
// defaults
//wndcls.style = CS_DBLCLKS; //双击
//you can specify your own window procedure
wndcls.lpfnWndProc = ::DefWindowProc;
wndcls.hInstance = AfxGetInstanceHandle();
wndcls.hIcon = LoadIcon(IDR_MAINFRAME); // or load a different icon
wndcls.hCursor = LoadStandardCursor( IDC_ARROW );
//backGrush.CreateSolidBrush(RGB(247,247,247)); // Blue brush.
//wndcls.hbrBackground = (HBRUSH)backGrush.m_hObject;
wndcls.lpszMenuName = NULL;
// Specify your own class name for using FindWindow later
wndcls.lpszClassName = _T("VFDTest");
// Register the new class and exit if it fails
if(!AfxRegisterClass(&wndcls))
{
TRACE(_T("Class Registration Failed\n"));
return FALSE;
}
// 主窗口
MainForm* pFrame = new MainForm();
// 取系统参数,确定显示位置和大小
CRect drc; // 桌面工作区大小,不算任务栏
SystemParametersInfo(SPI_GETWORKAREA,0,drc,0);
int dwidth = drc.Width(); // 桌面工作区宽
int dheight = drc.Height(); // 桌面工作区高
// 上次保存的窗口大小
CRect rc;
rc.right = dwidth; // 第一次进窗口状态,充满桌面,有边框,可改变大小。
rc.bottom = dheight;
//this->GetInt();
rc.left = GetInt( _T("WindowLeft"), rc.left );
rc.top = GetInt( _T("WindowTop"), rc.top );
rc.right = GetInt( _T("WindowRight"), rc.right );
rc.bottom = GetInt( _T("WindowBottom"), rc.bottom );
// 最小尺寸200x200
const int s = 300; // ?? 应该考虑系统DPI
if( rc.Width() < s )
rc.right = rc.left + s;
if( rc.Height() < s )
rc.bottom = rc.top + s;
// 与桌面相交最少200
int dx = 0, dy = 0, d = 0;
if( rc.right < s )
dx = s - rc.right;
else if( (d = dwidth - rc.left) < s )
dx = d - s;
if( rc.bottom < s )
dy = s - rc.bottom;
else if( (d = dheight - rc.top) < s )
dy = d - s;
// 窗口的左右都超出桌面,窗口移到桌面内
if( rc.left < 0 && rc.right > dwidth )
dx = -rc.left;
if( rc.top < 0 && rc.bottom > dheight )
dy = -rc.top;
// 移动显示区
if( dx || dy )
rc.OffsetRect( dx, dy );
// 创建窗口
// 唯一的一个窗口已初始化,因此显示它并对其进行更新
m_nFullScreen = GetInt( _T("FullScreen"), m_nFullScreen ); // 全屏状态
m_nMaximized = GetInt( _T("ShowMaximized"), m_nMaximized ); // 最大化状态
DWORD style = (m_nFullScreen ? WS_POPUP : WS_OVERLAPPEDWINDOW);
if( m_nFullScreen | m_nMaximized )
style |= WS_MAXIMIZE;
if( !pFrame->CreateEx( NULL, wndcls.lpszClassName, _T("VFDTest"), style, rc, NULL, NULL, NULL ) ) // 无边框,充满屏
{
delete pFrame;
return FALSE;
}
m_pMainWnd = pFrame;
pFrame->ShowWindow(SW_SHOW);
//pFrame->UpdateWindow();
// 仅当具有后缀时才调用 DragAcceptFiles
// 在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生
return TRUE;
}