92 lines
1.9 KiB
C
92 lines
1.9 KiB
C
// ui.cpp : Defines the entry point for the application.
|
|
//
|
|
|
|
#include <windows.h>
|
|
#include "resource.h"
|
|
|
|
HINSTANCE g_hInstance;
|
|
HWND m_curwnd;
|
|
|
|
LPTSTR windows[] = {
|
|
MAKEINTRESOURCE(IDD_LICENSE),
|
|
MAKEINTRESOURCE(IDD_SELCOM),
|
|
MAKEINTRESOURCE(IDD_DIR),
|
|
MAKEINTRESOURCE(IDD_INSTFILES),
|
|
MAKEINTRESOURCE(IDD_UNINST)
|
|
};
|
|
|
|
BOOL CALLBACK GenericProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
|
|
static LOGBRUSH b = {BS_SOLID, RGB(255,0,0), 0};
|
|
static HBRUSH red;
|
|
|
|
if (!red)
|
|
red = CreateBrushIndirect(&b);
|
|
|
|
switch (uMsg) {
|
|
case WM_CTLCOLORSTATIC:
|
|
return (int)red;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
BOOL CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
|
|
static int i = -1;
|
|
switch (uMsg) {
|
|
case WM_INITDIALOG:
|
|
ShowWindow(GetDlgItem(hwndDlg, IDC_CHILDRECT), SW_SHOW);
|
|
ShowWindow(hwndDlg, SW_SHOW);
|
|
break;
|
|
case WM_COMMAND:
|
|
switch (LOWORD(wParam)) {
|
|
case IDOK:
|
|
case IDC_BACK:
|
|
i+=(LOWORD(wParam)==IDOK)?1:-1;
|
|
if (i < 0) {
|
|
i++;
|
|
break;
|
|
}
|
|
if (i >= (int)sizeof(windows)/sizeof(char*)) {
|
|
i--;
|
|
break;
|
|
}
|
|
if (m_curwnd) DestroyWindow(m_curwnd);
|
|
m_curwnd=CreateDialog(g_hInstance,windows[i],hwndDlg,GenericProc);
|
|
if (m_curwnd)
|
|
{
|
|
RECT r;
|
|
GetWindowRect(GetDlgItem(hwndDlg,IDC_CHILDRECT),&r);
|
|
ScreenToClient(hwndDlg,(LPPOINT)&r);
|
|
SetWindowPos(m_curwnd,0,r.left,r.top,0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER);
|
|
ShowWindow(m_curwnd,SW_SHOWNA);
|
|
}
|
|
break;
|
|
default:
|
|
EndDialog(hwndDlg, 0);
|
|
PostQuitMessage(0);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int APIENTRY WinMain(HINSTANCE hInstance,
|
|
HINSTANCE hPrevInstance,
|
|
LPSTR lpCmdLine,
|
|
int nCmdShow)
|
|
{
|
|
|
|
g_hInstance = GetModuleHandle(0);
|
|
|
|
DialogBox(
|
|
g_hInstance,
|
|
MAKEINTRESOURCE(IDD_INST),
|
|
0,
|
|
DialogProc
|
|
);
|
|
|
|
ExitProcess(0);
|
|
|
|
return 0;
|
|
}
|