//resource_Id.h#define IDB_PUSHBUTTON 100
#define IDB_DEFPUSHBUTTON 101
#define IDB_RADIOBUTTON 102
#define IDB_AUTORADIOBUTTON 103
#define IDB_CHECKBOX 104
#define IDB_AUTOCHECKBOX 105
#define IDB_GROUPBOX 106 //WinMain.h#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include <string>
#include <cmath>
#include "resource_Id.h"
#define B_PUSHBUTTON(startX,startY,width,height)\
CreateWindowW(L"普通按扭类",L"这是一个普通按扭",BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_PUSHBUTTON,hInstance,NULL);
/*缺省按扭*/
#define B_DEFPUSHBUTTON(startX,startY,width,height)\
CreateWindowW(L"缺省按扭类",L"这是一个缺省按扭",BS_DEFPUSHBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_DEFPUSHBUTTON,hInstance,NULL);
/*圆按扭*/
#define B_RADIOBUTTON(startX,startY,width,height)\
CreateWindowW(L"圆按扭类",L"这是一个圆按扭",BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_RADIOBUTTON,hInstance,NULL);
/*自动圆按扭*/
#define B_AUTORADIOBUTTON(startX,startY,width,height)\
CreateWindowW(L"自动圆按扭类",L"这是一个自动圆按扭",BS_AUTORADIOBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_AUTORADIOBUTTON,hInstance,NULL);
/*复选框控件子窗口*/
#define B_CHECKBOX(startX,startY,width,height)\
CreateWindowW(L"复选框类",L"这是一个复选框",BS_CHECKBOX|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_CHECKBOX,hInstance,NULL); /*自动复选框控件子窗口*/
#define B_AUTOCHECKBOX(startX,startY,width,height)\
hWndAutoCheckBox=CreateWindowW(L"自动复选框类",L"这是一个自动复选框",BS_AUTOCHECKBOX|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_AUTOCHECKBOX,hInstance,NULL);
/*组框控件子窗口*/
#define B_GROUPBOX(startX,startY,width,height)\
( L"组框类",L"这是一个组框",BS_GROUPBOX|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_GROUPBOX,hInstance,NULL);
HINSTANCE hInstance;
HWND hWnd;
RECT rect={100,100,100,100};
int nCmdShow;BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
::hInstance=hInstance;
::nCmdShow=nCmdShow;
static HACCEL hAccel;
MSG Message;
if(!InitWindowsClass(hInstance)) return FALSE;//初始化窗口类.
if(!InitWindows(hInstance,nCmdShow)) return FALSE;//初始化窗口.
hAccel=LoadAccelerators(::hInstance,L"Menu");
while(GetMessage(&Message,0,0,0))
{
if(!TranslateAccelerator(hWnd,hAccel,&Message))
{
TranslateMessage(&Message); DispatchMessage(&Message);
}
}
return (int)Message.wParam;
}
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) //初始化
{
HWND hWnd;
hWnd=CreateWindow(_T("键盘"),_T("键盘按键"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT, 0, NULL,0,hInstance,NULL);
if(!hWnd) return FALSE;
ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd);
return TRUE; }BOOL InitWindowsClass(HINSTANCE hInstance) //初始化窗口类.
{
WNDCLASS WndClass; //定义窗口类.
WndClass.cbClsExtra=0; //窗口类无扩展.
WndClass.cbWndExtra=0; //窗口实例无扩展.
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));//窗口背景为白色.
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标.
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标.
WndClass.hInstance=hInstance; //当前实例句柄.
WndClass.lpfnWndProc=WndProc; //窗口处理函数.
WndClass.lpszClassName=_T("键盘"); //窗口类名.
WndClass.lpszMenuName=_T("Menu"); //无菜单
WndClass.style=0; //窗口类型为缺省类型.
return RegisterClass(&WndClass); //返回注册窗口的值.
}
//WinProc.cpp
#include"winMain.h"
#include "resource_Id.h"long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
PAINTSTRUCT ps; HDC hDc;
static int startX=10,startY=50,width=100,height=20;
static HWND hWndPush,hWndDefPush, hWndRadio,hWndAutoRadio,hWndCheckBox,hWndAutoCheckBox,hWndGroupBox;
switch(iMessage)
{
case WM_CREATE: hWndPush =B_PUSHBUTTON(startX,startY,width,height)
hWndDefPush =B_DEFPUSHBUTTON(startX,startY+40,width,height)
hWndRadio =B_RADIOBUTTON(startX,startY+40,width,height)
hWndAutoRadio =B_AUTORADIOBUTTON(startX,startY+40,width,height)
hWndCheckBox =B_CHECKBOX(startX,startY+40,width,height)
hWndAutoCheckBox=B_AUTOCHECKBOX(startX,startY+40,width,height)
hWndGroupBox =B_GROUPBOX(startX,startY+40,width,height)
break;
case WM_COMMAND:switch(LOWORD(wParam))
{
case IDB_PUSHBUTTON: SetWindowText(hWndPush,L"按下1"); break;
case IDB_DEFPUSHBUTTON: SetWindowText(hWndDefPush,L"按下2"); break;
case IDB_RADIOBUTTON: SetWindowText(hWndRadio ,L"按下3"); break;
case IDB_AUTORADIOBUTTON: SetWindowText(hWndAutoRadio,L"按下4"); break;
case IDB_CHECKBOX: SetWindowText(hWndCheckBox,L"按下5"); break;
case IDB_AUTOCHECKBOX: SetWindowText(hWndAutoCheckBox,L"按下6");break;
case IDB_GROUPBOX: break; }
break;
case WM_PAINT: InvalidateRect(hWnd,&rect,true);
hDc=BeginPaint(hWnd,&ps);
SelectObject(hDc,GetStockObject(SYSTEM_FIXED_FONT));
SetBkMode(hDc,TRANSPARENT);
TextOut(hDc,startX*24,startY,Title,sizeof(Title)-2);
EndPaint(hWnd,&ps);
return 0; case WM_DESTROY: PostQuitMessage(0); return 0;
default: return (long)(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
return 0;
}SDI简单程序!我创建的按扭看不到
#define IDB_DEFPUSHBUTTON 101
#define IDB_RADIOBUTTON 102
#define IDB_AUTORADIOBUTTON 103
#define IDB_CHECKBOX 104
#define IDB_AUTOCHECKBOX 105
#define IDB_GROUPBOX 106 //WinMain.h#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include <string>
#include <cmath>
#include "resource_Id.h"
#define B_PUSHBUTTON(startX,startY,width,height)\
CreateWindowW(L"普通按扭类",L"这是一个普通按扭",BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_PUSHBUTTON,hInstance,NULL);
/*缺省按扭*/
#define B_DEFPUSHBUTTON(startX,startY,width,height)\
CreateWindowW(L"缺省按扭类",L"这是一个缺省按扭",BS_DEFPUSHBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_DEFPUSHBUTTON,hInstance,NULL);
/*圆按扭*/
#define B_RADIOBUTTON(startX,startY,width,height)\
CreateWindowW(L"圆按扭类",L"这是一个圆按扭",BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_RADIOBUTTON,hInstance,NULL);
/*自动圆按扭*/
#define B_AUTORADIOBUTTON(startX,startY,width,height)\
CreateWindowW(L"自动圆按扭类",L"这是一个自动圆按扭",BS_AUTORADIOBUTTON|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_AUTORADIOBUTTON,hInstance,NULL);
/*复选框控件子窗口*/
#define B_CHECKBOX(startX,startY,width,height)\
CreateWindowW(L"复选框类",L"这是一个复选框",BS_CHECKBOX|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_CHECKBOX,hInstance,NULL); /*自动复选框控件子窗口*/
#define B_AUTOCHECKBOX(startX,startY,width,height)\
hWndAutoCheckBox=CreateWindowW(L"自动复选框类",L"这是一个自动复选框",BS_AUTOCHECKBOX|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_AUTOCHECKBOX,hInstance,NULL);
/*组框控件子窗口*/
#define B_GROUPBOX(startX,startY,width,height)\
( L"组框类",L"这是一个组框",BS_GROUPBOX|WS_CHILD|WS_VISIBLE,\
startX,startY,width,height,\
hWnd,(HMENU)IDB_GROUPBOX,hInstance,NULL);
HINSTANCE hInstance;
HWND hWnd;
RECT rect={100,100,100,100};
int nCmdShow;BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
::hInstance=hInstance;
::nCmdShow=nCmdShow;
static HACCEL hAccel;
MSG Message;
if(!InitWindowsClass(hInstance)) return FALSE;//初始化窗口类.
if(!InitWindows(hInstance,nCmdShow)) return FALSE;//初始化窗口.
hAccel=LoadAccelerators(::hInstance,L"Menu");
while(GetMessage(&Message,0,0,0))
{
if(!TranslateAccelerator(hWnd,hAccel,&Message))
{
TranslateMessage(&Message); DispatchMessage(&Message);
}
}
return (int)Message.wParam;
}
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) //初始化
{
HWND hWnd;
hWnd=CreateWindow(_T("键盘"),_T("键盘按键"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT, 0, NULL,0,hInstance,NULL);
if(!hWnd) return FALSE;
ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd);
return TRUE; }BOOL InitWindowsClass(HINSTANCE hInstance) //初始化窗口类.
{
WNDCLASS WndClass; //定义窗口类.
WndClass.cbClsExtra=0; //窗口类无扩展.
WndClass.cbWndExtra=0; //窗口实例无扩展.
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));//窗口背景为白色.
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标.
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标.
WndClass.hInstance=hInstance; //当前实例句柄.
WndClass.lpfnWndProc=WndProc; //窗口处理函数.
WndClass.lpszClassName=_T("键盘"); //窗口类名.
WndClass.lpszMenuName=_T("Menu"); //无菜单
WndClass.style=0; //窗口类型为缺省类型.
return RegisterClass(&WndClass); //返回注册窗口的值.
}
//WinProc.cpp
#include"winMain.h"
#include "resource_Id.h"long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
PAINTSTRUCT ps; HDC hDc;
static int startX=10,startY=50,width=100,height=20;
static HWND hWndPush,hWndDefPush, hWndRadio,hWndAutoRadio,hWndCheckBox,hWndAutoCheckBox,hWndGroupBox;
switch(iMessage)
{
case WM_CREATE: hWndPush =B_PUSHBUTTON(startX,startY,width,height)
hWndDefPush =B_DEFPUSHBUTTON(startX,startY+40,width,height)
hWndRadio =B_RADIOBUTTON(startX,startY+40,width,height)
hWndAutoRadio =B_AUTORADIOBUTTON(startX,startY+40,width,height)
hWndCheckBox =B_CHECKBOX(startX,startY+40,width,height)
hWndAutoCheckBox=B_AUTOCHECKBOX(startX,startY+40,width,height)
hWndGroupBox =B_GROUPBOX(startX,startY+40,width,height)
break;
case WM_COMMAND:switch(LOWORD(wParam))
{
case IDB_PUSHBUTTON: SetWindowText(hWndPush,L"按下1"); break;
case IDB_DEFPUSHBUTTON: SetWindowText(hWndDefPush,L"按下2"); break;
case IDB_RADIOBUTTON: SetWindowText(hWndRadio ,L"按下3"); break;
case IDB_AUTORADIOBUTTON: SetWindowText(hWndAutoRadio,L"按下4"); break;
case IDB_CHECKBOX: SetWindowText(hWndCheckBox,L"按下5"); break;
case IDB_AUTOCHECKBOX: SetWindowText(hWndAutoCheckBox,L"按下6");break;
case IDB_GROUPBOX: break; }
break;
case WM_PAINT: InvalidateRect(hWnd,&rect,true);
hDc=BeginPaint(hWnd,&ps);
SelectObject(hDc,GetStockObject(SYSTEM_FIXED_FONT));
SetBkMode(hDc,TRANSPARENT);
TextOut(hDc,startX*24,startY,Title,sizeof(Title)-2);
EndPaint(hWnd,&ps);
return 0; case WM_DESTROY: PostQuitMessage(0); return 0;
default: return (long)(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
return 0;
}SDI简单程序!我创建的按扭看不到
解决方案 »
- ATL 接口参数问题
- VC6.0清屏问题
- 100分急问:音乐视频化、音乐可视化的问题!
- 关于adodc的问题
- 请问,Visual Studio.NET可不可以和Delphi,C++Builder装在同一个操作系统中?
- 请教:在CComboBox变量显示后,在同一对话框类的其他函数中用AddSting()增加项目,为何不显示?谢谢!
- 如何识别一张图片中的交通标志?
- 紧急求助!各位大虾
- 请问如何得到其它进程需输入的内容,并改变其内容?
- 编译提示 LINK : warning LNK4089
- IHTMLDocument::getElementByName()函数的问题。
- !!!!!!!!com接口!!!!!!
#define IDB_DEFPUSHBUTTON 101
#define IDB_RADIOBUTTON 102
#define IDB_AUTORADIOBUTTON 103
#define IDB_CHECKBOX 104
#define IDB_AUTOCHECKBOX 105
#define IDB_GROUPBOX 106
//WinMain.h #include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include <string>
#include <cmath>
#include "resource_Id.h"
#define B_PUSHBUTTON(startX,startY,width,height)\
CreateWindowW(L"普通按扭类",L"这是一个普通按扭",BS_PUSHBUTTON ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_PUSHBUTTON,hInstance,NULL);
/*缺省按扭*/
#define B_DEFPUSHBUTTON(startX,startY,width,height)\
CreateWindowW(L"缺省按扭类",L"这是一个缺省按扭",BS_DEFPUSHBUTTON ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_DEFPUSHBUTTON,hInstance,NULL);
/*圆按扭*/
#define B_RADIOBUTTON(startX,startY,width,height)\
CreateWindowW(L"圆按扭类",L"这是一个圆按扭",BS_RADIOBUTTON ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_RADIOBUTTON,hInstance,NULL);
/*自动圆按扭*/
#define B_AUTORADIOBUTTON(startX,startY,width,height)\
CreateWindowW(L"自动圆按扭类",L"这是一个自动圆按扭",BS_AUTORADIOBUTTON ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_AUTORADIOBUTTON,hInstance,NULL);
/*复选框控件子窗口*/
#define B_CHECKBOX(startX,startY,width,height)\
CreateWindowW(L"复选框类",L"这是一个复选框",BS_CHECKBOX ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_CHECKBOX,hInstance,NULL); /*自动复选框控件子窗口*/
#define B_AUTOCHECKBOX(startX,startY,width,height)\
CreateWindowW(L"自动复选框类",L"这是一个自动复选框",BS_AUTOCHECKBOX ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_AUTOCHECKBOX,hInstance,NULL);
/*组框控件子窗口*/
#define B_GROUPBOX(startX,startY,width,height)\
CreateWindowW( L"组框类",L"这是一个组框",BS_GROUPBOX ¦WS_CHILD ¦WS_VISIBLE,\
startX,startY,width,height,hWnd,(HMENU)IDB_GROUPBOX,hInstance,NULL);
HINSTANCE hInstance;
HWND hWnd;
RECT rect={100,100,100,100};
int nCmdShow; BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
::hInstance=hInstance; ::nCmdShow=nCmdShow;
MSG Message;
if(!InitWindowsClass(hInstance)) return FALSE;//初始化窗口类.
if(!InitWindows(hInstance,nCmdShow)) return FALSE;//初始化窗口. while(GetMessage(&Message,0,0,0))
{ TranslateMessage(&Message); DispatchMessage(&Message); }
return (int)Message.wParam;
}
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) //初始化
{
HWND hWnd;
hWnd=CreateWindow(_T("键盘"),_T("键盘按键"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT, 0, NULL,0,hInstance,NULL);
if(!hWnd) return FALSE;
ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd);
return TRUE; } BOOL InitWindowsClass(HINSTANCE hInstance) //初始化窗口类.
{
WNDCLASS WndClass; //定义窗口类.
WndClass.cbClsExtra=0; //窗口类无扩展.
WndClass.cbWndExtra=0; //窗口实例无扩展.
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));//窗口背景为白色.
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标.
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标.
WndClass.hInstance=hInstance; //当前实例句柄.
WndClass.lpfnWndProc=WndProc; //窗口处理函数.
WndClass.lpszClassName=_T("键盘"); //窗口类名.
WndClass.lpszMenuName=_T("Menu"); //无菜单
WndClass.style=0; //窗口类型为缺省类型.
return RegisterClass(&WndClass); //返回注册窗口的值.
}
//WinProc.cpp
#include"winMain.h"
#include "resource_Id.h" long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
PAINTSTRUCT ps; HDC hDc;
static int startX=10,startY=50,width=100,height=20;
static HWND hWndPush,hWndDefPush, hWndRadio,hWndAutoRadio,hWndCheckBox,hWndAutoCheckBox,hWndGroupBox;
switch(iMessage)
{
case WM_CREATE: hWndPush =B_PUSHBUTTON(startX,startY,width,height)
hWndDefPush =B_DEFPUSHBUTTON(startX,startY+40,width,height)
hWndRadio =B_RADIOBUTTON(startX,startY+40,width,height)
hWndAutoRadio =B_AUTORADIOBUTTON(startX,startY+40,width,height)
hWndCheckBox =B_CHECKBOX(startX,startY+40,width,height)
hWndAutoCheckBox=B_AUTOCHECKBOX(startX,startY+40,width,height)
hWndGroupBox =B_GROUPBOX(startX,startY+40,width,height)
break;
case WM_COMMAND:switch(LOWORD(wParam))
{
case IDB_PUSHBUTTON: SetWindowText(hWndPush,L"按下1"); break;
case IDB_DEFPUSHBUTTON: SetWindowText(hWndDefPush,L"按下2"); break;
case IDB_RADIOBUTTON: SetWindowText(hWndRadio ,L"按下3"); break;
case IDB_AUTORADIOBUTTON: SetWindowText(hWndAutoRadio,L"按下4"); break;
case IDB_CHECKBOX: SetWindowText(hWndCheckBox,L"按下5"); break;
case IDB_AUTOCHECKBOX: SetWindowText(hWndAutoCheckBox,L"按下6");break;
case IDB_GROUPBOX: break; }
break;
case WM_PAINT: InvalidateRect(hWnd,&rect,true);
hDc=BeginPaint(hWnd,&ps);
SelectObject(hDc,GetStockObject(SYSTEM_FIXED_FONT));
SetBkMode(hDc,TRANSPARENT);
TextOut(hDc,startX*24,startY,Title,sizeof(Title)-2);
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY: PostQuitMessage(0); return 0;
default: return (long)(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
return 0;
} SDI简单程序!我创建的按扭看不到
谢谢你的帮助1一真见血!
我还想知道为何必须"button"呢?
换成其他的都不行么?
SetWindowText是设置窗口文字,设置什么就是什么,没有所谓的恢复的概念,要改成原来的文字就用SetWindowText设置为原来的文字。