win32

97 篇文章 0 订阅
92 篇文章 0 订阅
#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);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值