win32

#include<windows.h>
#include<stdio.h>

LRESULT CALLBACK WinSunProc(
 HWND hwnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
);
int WINAPI WinMain(
 HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 int nCmdShow
)
{
 WNDCLASS wndcls;
 wndcls.cbClsExtra=0;
 wndcls.cbWndExtra=0;
 wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
 wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
 wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
 wndcls.hInstance=hInstance;
 wndcls.lpfnWndProc=WinSunProc;
 wndcls.lpszClassName="zhang2012";
 wndcls.lpszMenuName=NULL;
 wndcls.style=CS_HREDRAW | CS_VREDRAW;
 RegisterClass(&wndcls);

 HWND hwnd;
 hwnd=CreateWindow("zhang2012","第一windows窗口",WS_OVERLAPPEDWINDOW,
  0,0,600,400,NULL,NULL,hInstance,NULL);
 ShowWindow(hwnd,SW_SHOWNORMAL);
 UpdateWindow(hwnd);

 MSG msg;
 while(GetMessage(&msg,NULL,0,0)){
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 0;

}

LRESULT CALLBACK WinSunProc(
 HWND hwnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
)
{
 switch(message){
 case WM_PAINT:
  HDC hDC;
  PAINTSTRUCT ps;
  hDC=BeginPaint(hwnd,&ps);
  TextOut(hDC,0,0,"hello,world",strlen("hello,world"));

  EndPaint(hwnd,&ps);

  break;
 case WM_LBUTTONDOWN:
  MessageBox(hwnd,"click mouse","little frame",0);
  HDC hdc;
  hdc=GetDC(hwnd);
  TextOut(hdc,0,50,"hello,this is my first frame",strlen("hello,this is my first frame"));
  ReleaseDC(hwnd,hdc);
  break;
 case WM_CLOSE:
  if(IDYES==MessageBox(hwnd,"close or not","little frame",MB_YESNO)){
   DestroyWindow(hwnd);
  }
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 case WM_CHAR:
  char szchar[20];
  sprintf(szchar,"char is %d",wParam);
  MessageBox(hwnd,szchar,"little frame",0);

  break;

 default:
  return DefWindowProc(hwnd,message,wParam,lParam);
 }
 return 0;
}


 

 以上程序在VC6.0能运行,因为其字符是ASCII

#include<windows.h>
#include<stdio.h>

LRESULT CALLBACK WinSunProc(
 HWND hwnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
);
int WINAPI WinMain(
 HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 int nCmdShow
)
{
 WNDCLASS wndcls;
 wndcls.cbClsExtra=0;
 wndcls.cbWndExtra=0;
 wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
 wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
 wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
 wndcls.hInstance=hInstance;
 wndcls.lpfnWndProc=WinSunProc;
 wndcls.lpszClassName=L"zhang2012";
 wndcls.lpszMenuName=NULL;
 wndcls.style=CS_HREDRAW | CS_VREDRAW;
 RegisterClass(&wndcls);

 HWND hwnd;
 hwnd=CreateWindow(L"zhang2012",L"第一windows窗口",WS_OVERLAPPEDWINDOW,
  0,0,600,400,NULL,NULL,hInstance,NULL);
 ShowWindow(hwnd,SW_SHOWNORMAL);
 UpdateWindow(hwnd);

 MSG msg;
 while(GetMessage(&msg,NULL,0,0)){
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 0;

}

LRESULT CALLBACK WinSunProc(
 HWND hwnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
)
{
 switch(message){
 case WM_PAINT:
  HDC hDC;
  PAINTSTRUCT ps;
  hDC=BeginPaint(hwnd,&ps);
  TextOut(hDC,0,0,L"hello,world",strlen("hello,world"));

  EndPaint(hwnd,&ps);

  break;
 case WM_LBUTTONDOWN:
  MessageBox(hwnd,L"click mouse",L"little frame",0);
  HDC hdc;
  hdc=GetDC(hwnd);
  TextOut(hdc,0,50,L"hello,this is my first frame",strlen("hello,this is my first frame"));
  ReleaseDC(hwnd,hdc);
  break;
 case WM_CLOSE:
  if(IDYES==MessageBox(hwnd,L"close or not",L"little frame",MB_YESNO)){
   DestroyWindow(hwnd);
  }
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 case WM_CHAR:
  wchar_t szchar[20];
  char zchar[20];
  sprintf(zchar,"char is %d",wParam);
  MessageBox(hwnd,szchar,L"little frame",0);

  break;

 default:
  return DefWindowProc(hwnd,message,wParam,lParam);
 }
 return 0;
}

可以在VS2008运行,字符集是unicode


 

MFC 按钮设置:

添加按钮ID_BTN_EDIT 的成员变量 m_btnedit,

按钮不可用(变灰)   m_btnedit. EnableWindow (0);

按钮可用                      m_btnedit. EnableWindow (1);

按钮不显示 (消失)  m_btnedit.ShowWindow (0);

按钮显示  出现             m_btnedit.ShowWindow (0);

 

win32_第1张图片

 

你可能感兴趣的:(win32)