/**
* user_WNDCLASS.cpp(用户框架窗口文件)
* 窗口类资源文件
*
* aouther:Gu Mingyao
* time:2009-12-3
* Victor:1.1.001
*/
//系统头文件
#include <windows.h>
#include "Seky_Notepad.h"
#include <commctrl.h>
#include "resource2.h"
BOOL InitApp(HINSTANCE hInst)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = "IDR_MENU1";
wc.lpszClassName = (LPCSTR)szClassName;
return (RegisterClass(&wc));
}
BOOL InitInstance(HINSTANCE hInst, int nCmdShow)
{
main_hWnd = CreateWindow(szClassName,
"Status Bat test",
G_MAINWINDOW_STYLES|SS_CENTER,
100,
100,
600,
400,
NULL,
NULL,
hInst,
NULL);
if (!main_hWnd)
return FALSE;
//LPRECT rect;
//::GetWindowRect(hWnd,rect)
//::SetWindowPos(hWnd,HWND_NOTOPMOST,rect->left,rect->top,rect->right-rect->left,rect->bottom-rect->top,SWP_NOMOVE|SWP_NOSIZE);
::SetWindowPos(main_hWnd,HWND_TOPMOST,100,100,600, 400,SWP_NOMOVE|SWP_NOSIZE);
ShowWindow(main_hWnd, nCmdShow);
UpdateWindow(main_hWnd);
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
int id;
char str[256];
char *str_org = "%02d:%02d:%02d";
SYSTEMTIME STime;
static HINSTANCE hInst;
hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
static HMENU hMenu;
HWND hw;
LPRECT rect;
hMenu = GetMenu(hWnd);
switch (msg) {
case WM_CREATE:
CreateMyStatus(hWnd, hInst);
CreateMyToolbar(hWnd, hInst);
::GetWindowRect(main_hWnd,rect);
//::SetWindowPos(hWnd,HWND_NOTOPMOST,rect->left,rect->top,rect->right-rect->left,rect->bottom-rect->top,SWP_NOMOVE|SWP_NOSIZE);
hListWnd = CreateWindow("Edit","sdf",WS_POPUP|WS_DLGFRAME|WS_VISIBLE,rect->left,rect->top,(int)(rect->right-rect->left),(int)(rect->bottom-rect->top),main_hWnd,NULL,hInst,NULL);//LISTBOX
ShowWindow(hListWnd,true);
SetTimer(hWnd, ID_MYTIMER, 300, NULL);
EnableMenuItem(hMenu, 1, MF_GRAYED);
break;
case WM_TIMER:
//::SetWindowText(hListWnd,"123123");
GetLocalTime(&STime);
wsprintf(str, str_org, STime.wHour, STime.wMinute, STime.wSecond);
SendMessage(hStatus, SB_SETTEXT, 255 | 0, (WPARAM)(LPSTR)str);
break;
case WM_SIZE:
SendMessage(hStatus, WM_SIZE, wp, lp);
break;
case WM_COMMAND:
switch (LOWORD(wp)) {
case 3:
SendMessage(hWnd, WM_CLOSE, 0L, 0L);
break;
case 1:
ShowWindow(hStatus, SW_SHOW);
EnableMenuItem(hMenu, 1, MF_GRAYED);
EnableMenuItem(hMenu, 2, MF_ENABLED);
break;
case 2:
ShowWindow(hStatus, SW_HIDE);
EnableMenuItem(hMenu, 2, MF_GRAYED);
EnableMenuItem(hMenu, 1, MF_ENABLED);
}
break;
case WM_CLOSE:
id = MessageBox(hWnd,
(LPCSTR)"Do you want to exit?",
(LPCSTR)"Confirmation",
MB_YESNO | MB_ICONQUESTION);
if (id == IDYES) {
DestroyWindow(hWnd);
}
break;
case WM_DESTROY:
KillTimer(hWnd, ID_MYTIMER);
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd, msg, wp, lp));
}
return 0L;
}
HWND CreateMyStatus(HWND hWnd, HINSTANCE hInst)
{
InitCommonControls();
hStatus = CreateWindowEx(
0,
STATUSCLASSNAME,
NULL,
WS_CHILD | SBARS_SIZEGRIP | CCS_BOTTOM | WS_VISIBLE,
0,
0,
0,
0,
hWnd,
(HMENU)ID_STATUS,
hInst,
NULL);
SendMessage(hStatus, SB_SIMPLE, TRUE, 0L);
return hStatus;
}
HWND CreateMyToolbar(HWND hWnd, HINSTANCE hInst)
{
HWND hwndToolBar=CreateToolbarEx(hWnd, //工具栏所属窗口句柄
WS_CHILD |WS_BORDER |TBSTYLE_FLAT | WS_VISIBLE | CCS_TOP, //工具栏风格
888,//ID_TOOLBAR //预定义的工具栏ID号,需要在resource.h中用#define定义
14, //图片数
HINST_COMMCTRL, //使用系统定义图标,用自定义图片时设为NULL
IDB_STD_LARGE_COLOR, //使用系统定义的小图标,自定义时应为图片句柄
tbButtonsCreate, //指定一个TBBUTTON结构体
19, //按钮数,包括分割线
16,16,16,16, //各图标大小
sizeof(TBBUTTON)); //size of TBBUTTON
return hwndToolBar;
}