// 查找任务栏窗口 HWND hWnd = FindWindow(L"CTaskBar", 0); if(hWnd != 0) { RECT rc = {0}; ::GetWindowRect(hWnd, &rc); int height = rc.bottom - rc.top; int width = rc.right - rc.left; }
class CSample1MainWnd: public CMzWndEx { // ... 省略的代码 protected: // 窗口的初始化 virtual BOOL OnInitDialog() { // ... 省略的代码 // 第一步:注册进入锁机界面的消息 RegisterShellMessage(m_hWnd, WM_MZSH_ENTRY_LOCKPHONE); return TRUE; } // ... 省略的代码 // 重载 CMzWndEx::MzDefWndProc() ,处理通知消息 virtual LRESULT MzDefWndProc(UINT message, WPARAM wParam, LPARAM lParam) { // 第二、三步:获取进入锁机界面的消息,然后处理 if (message == GetShellNotifyMsg_EntryLockPhone()) { PostQuitMessage(0); } return CMzWndEx::MzDefWndProc(message, wParam, lParam); } };
class CSample1MainWnd: public CMzWndEx { UINT m_allkeyEvent; protected: virtual BOOL OnInitDialog() { // ...省略的代码 // 注册所有硬按键消息 WM_MZSH_ALL_KEY_EVENT RegisterShellMessage(m_hWnd, WM_MZSH_ALL_KEY_EVENT); // 获取所有硬按键消息值 m_allkeyEvent = GetShellNotifyMsg_AllKeyEvent(); return TRUE; } // 重载 CMzWndEx::MzDefWndProc() 处理 M 键双击消息 virtual LRESULT MzDefWndProc(UINT message, WPARAM wParam, LPARAM lParam) { if (message == m_allkeyEvent) { if (LOWORD(wParam) == WPARAM_KEY_EVENT_DBLCLICK_HOME) { // TODO: 处理 M 键双击消息 } } return CMzWndEx::MzDefWndProc(message, wParam, lParam); } };
// 创建并初始化一个DirectDraw的Overlay表面 MzDDrawOverlay Overlay; Overlay.Init(m_hWnd, MzGetClientRect().left, MzGetClientRect().top, RECT_WIDTH(MzGetClientRect()), RECT_HEIGHT(MzGetClientRect()), RGB(0, 15, 15), 15, 0, true); // 获得Overlay对应的HDC,此时Overlay会被锁定,可调用各种WindowsAPI对HDC进行绘图操作 HDC hdcOverLay = Overlay.BeginDraw(); // TODO:Overlay的操作,调用各种WindowsAPI对Overlay的HDC进行绘图操作 BitBlt(hdcOverLay, 100, 100, 179, 179, NULL, 0, 0, WHITENESS); // 画图结束解除对Overlay的锁定 Overlay.EndDraw(); // 显示Overlay Overlay.ShowOverlay();
MyWnd *pWnd = new MyWnd; pWnd->Create(....); pWnd->AnimateWindow(MZ_ANIMTYPE_ZOOM_IN, true); pWnd->Show();
2、假如窗口是模态窗口,则使用 CMzWnd::SetAnimateType_Show(UINT nAnimType) 、 CMzWnd::SetAnimateType_Hide(UINT nAnimType) 调用动画,示例:
MyDialog *pDlg = new MyDialog; pDlg->CreateModalDialog(...); pDlg->SetAnimateType_Show(MZ_ANIMTYPE_SCROLL_RIGHT_TO_LEFT_PUSH); pDlg->SetAnimateType_Hide(MZ_ANIMTYPE_SCROLL_LEFT_TO_RIGHT_PUSH); pDlg->DoModal(); delete pDlg;