win32 创建控件

来源:互联网 发布:淘宝屏蔽黑名单在哪 编辑:程序博客网 时间:2024/05/20 03:39
// 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];// 主窗口类名// 此代码模块中包含的函数的前向声明:ATOMMyRegisterClass(HINSTANCE hInstance);BOOLInitInstance(HINSTANCE, int);LRESULT CALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);INT_PTR CALLBACKAbout(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);//控件idwmEvent = 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;}

0 0
原创粉丝点击