// w32.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "w32.h"
#include "Windowsx.h"
#include <string.h>
#define MAX_LOADSTRING 100
#define IDB_ONE 3301
#define IDB_SEX 3302
#define IDB_SEX2 3303
#define IDB_LOVE 4302
#define IDB_LOVE2 4303
// 全局变量:
HINSTANCE hInst; // 当前实例
TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名
// 此代码模块中包含的函数的前向声明:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
HWND HwndTxt;
HWND HwndTxt2;
HWND HwndTxt3;
HWND HwndTxt4;
HWND HwndTxt5;
HWND HwndTxt6;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 在此放置代码。
MSG msg;
HACCEL hAccelTable;
// 初始化全局字符串
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_W32, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// 执行应用程序初始化:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_W32));
// 主消息循环:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int) msg.wParam;
}
//
// 函数: MyRegisterClass()
//
// 目的: 注册窗口类。
//
// 注释:
//
// 仅当希望
// 此代码与添加到 Windows 95 中的“RegisterClassEx”
// 函数之前的 Win32 系统兼容时,才需要此函数及其用法。调用此函数十分重要,
// 这样应用程序就可以获得关联的
// “格式正确的”小图标。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_W32));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(CTLCOLOR_DLG);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_W32);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
//
// 函数: InitInstance(HINSTANCE, int)
//
// 目的: 保存实例句柄并创建主窗口
//
// 注释:
//
// 在此函数中,我们在全局变量中保存实例句柄并
// 创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance; // 将实例句柄存储在全局变量中
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//
// 函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// 目的: 处理主窗口的消息。
//
// WM_COMMAND - 处理应用程序菜单
// WM_PAINT - 绘制主窗口
// WM_DESTROY - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);//控件id
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case IDB_ONE:
//
//LPTSTR p =(LPTSTR)szBuff;
{
char szLine1[100];
memset(szLine1,0X00,sizeof(szLine1));
GetWindowText(HwndTxt,(LPTSTR)szLine1,sizeof(szLine1));
//MessageBox(0,(LPTSTR)szLine1,NULL,MB_OK);
int b= SendMessage(HwndTxt6,CB_GETCURSEL,0,0);
int c=ComboBox_GetCurSel(HwndTxt6);
//char str[10];
//memset(str,0x00,10);
//sprintf(str,"%d",c);
//MessageBox(0,(LPTSTR)str,NULL,MB_OK);
char lpwText[100];
//char *lpwText =(char*) malloc(sizeof(char)*100);
int qq = sizeof(lpwText);
memset(lpwText,0x00,sizeof(lpwText));
bool bb = ComboBox_GetText( HwndTxt6, (LPTSTR)lpwText,sizeof(lpwText));
if(bb)
MessageBox(0,(LPTSTR)lpwText,NULL,MB_OK);
}
break;
case IDB_SEX:
{
/* if( IsDlgButtonChecked(hWnd, IDB_SEX) == BST_CHECKED)
{
CheckDlgButton(hWnd,IDB_SEX,BST_UNCHECKED);
CheckDlgButton(hWnd,IDB_SEX2,BST_CHECKED);
}else
{
if( IsDlgButtonChecked(hWnd, IDB_SEX) == BST_UNCHECKED)
{
CheckDlgButton(hWnd,IDB_SEX,BST_CHECKED);
CheckDlgButton(hWnd,IDB_SEX2,BST_UNCHECKED);
}
}*/
if( IsDlgButtonChecked(hWnd, IDB_SEX) == BST_CHECKED)
{
CheckRadioButton(hWnd,IDB_SEX,IDB_SEX2,IDB_SEX2);
}else
{
CheckRadioButton(hWnd,IDB_SEX,IDB_SEX2,IDB_SEX);
}
}
break;
case IDB_SEX2:
{
/*if( IsDlgButtonChecked(hWnd, IDB_SEX2) == BST_CHECKED)
{
CheckDlgButton(hWnd,IDB_SEX2,BST_UNCHECKED);
CheckDlgButton(hWnd,IDB_SEX, BST_CHECKED);
}else
{
if( IsDlgButtonChecked(hWnd, IDB_SEX2) == BST_UNCHECKED)
{
CheckDlgButton(hWnd,IDB_SEX2,BST_CHECKED);
CheckDlgButton(hWnd,IDB_SEX, BST_UNCHECKED);
}
}*/
if( IsDlgButtonChecked(hWnd, IDB_SEX2) == BST_CHECKED)
{
CheckRadioButton(hWnd,IDB_SEX,IDB_SEX2,IDB_SEX);
}else
{
CheckRadioButton(hWnd,IDB_SEX,IDB_SEX2,IDB_SEX2);
}
}
break;
case IDB_LOVE:
{
if (IsDlgButtonChecked(hWnd,IDB_LOVE)==BST_CHECKED)
{
CheckDlgButton(hWnd,IDB_LOVE,BST_UNCHECKED);
}else
{
CheckDlgButton(hWnd,IDB_LOVE,BST_CHECKED);
}
}
break;
case IDB_LOVE2:
{
if (IsDlgButtonChecked(hWnd,IDB_LOVE2)==BST_CHECKED)
{
CheckDlgButton(hWnd,IDB_LOVE2,BST_UNCHECKED);
}else
{
CheckDlgButton(hWnd,IDB_LOVE2,BST_CHECKED);
}
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_CREATE:
CreateWindow(L"Button", L"按钮一", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 250, 120, 60, hWnd, (HMENU)IDB_ONE, hInst, NULL);
HwndTxt = CreateWindow(
L"Edit",
L"",
WS_CHILD|WS_VISIBLE|WS_BORDER|BS_TEXT,
70, 10, 100,22,
hWnd,
(HMENU) 5,
hInst,
NULL
);
CreateWindow(
L"static",
L"姓名:",
WS_CHILD|WS_VISIBLE|SS_LEFT,
3, 10, 50,22,
hWnd,
(HMENU) 6,
hInst,
NULL
);
CreateWindow(
L"static",
L"性别:",
WS_CHILD|WS_VISIBLE|SS_LEFT,
3, 40, 50,22,
hWnd,
(HMENU) 6,
hInst,
NULL
);
CreateWindow(
L"static",
L"爱好:",
WS_CHILD|WS_VISIBLE|SS_LEFT,
3, 80, 50,22,
hWnd,
(HMENU) 6,
hInst,
NULL
);
HwndTxt2 = CreateWindow(L"Button", L"男", WS_VISIBLE | WS_CHILD | BS_RADIOBUTTON,
70, 40, 60, 22, hWnd, (HMENU)IDB_SEX, hInst, NULL);
HwndTxt3 = CreateWindow(L"Button", L"女", WS_VISIBLE | WS_CHILD | BS_RADIOBUTTON,
140, 40, 60, 22, hWnd, (HMENU)IDB_SEX2, hInst, NULL);
HwndTxt4 = CreateWindow(L"Button", L"读书", WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
160, 80, 60, 22, hWnd, (HMENU)IDB_LOVE2, hInst, NULL);
HwndTxt5 =CreateWindow(L"Button", L"看电影", WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
70, 80, 80, 22, hWnd, (HMENU)IDB_LOVE, hInst, NULL);
HwndTxt6= CreateWindow(TEXT("ComboBox"),
NULL,
WS_CHILDWINDOW | WS_VISIBLE | LBS_STANDARD,
640, 210, 150, 80,
hWnd,
(HMENU)95824,//(HMENU)(y << 8 | x),
hInst,
NULL);
SendMessage(HwndTxt6, CB_ADDSTRING, 0, (LPARAM)(_T("AAA - 1")));
SendMessage(HwndTxt6, CB_ADDSTRING, 0, (LPARAM)(_T("BBB - 1")));
//SendMessage(HwndTxt6, CB_SETCURSEL, (WPARAM)1, (LPARAM)0);
ComboBox_AddString(HwndTxt6,L"cccccccccc");
ComboBox_SetCurSel(HwndTxt6, 1);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// “关于”框的消息处理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}