首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

矩形边框如何没法显示?

2012-02-22 
矩形边框怎么没法显示??在线等。。。#include windows.h#include wingdi.hLRESULT CALLBACK WndProc (HWN

矩形边框怎么没法显示??在线等。。。

#include <windows.h>
#include <wingdi.h>


LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  PSTR szCmdLine, int iCmdShow)
{
  static TCHAR szAppName[] = TEXT ("HelloWin") ;
  HWND hwnd ;
  MSG msg ;
  WNDCLASS wndclass ;

  wndclass.style = CS_HREDRAW | CS_VREDRAW ;
  wndclass.lpfnWndProc = WndProc ;
  wndclass.cbClsExtra = 0 ;
  wndclass.cbWndExtra = 0 ;
  wndclass.hInstance = hInstance ;
  wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
  wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
  wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
  wndclass.lpszMenuName = NULL ;
  wndclass.lpszClassName = szAppName ;

  if (!RegisterClass (&wndclass))
  {
  MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
  szAppName, MB_ICONERROR) ;
  return 0 ;
  }
   
  hwnd = CreateWindow (szAppName, // window class name
  TEXT ("The Hello Program"), // window caption
  WS_OVERLAPPEDWINDOW, // window style
  CW_USEDEFAULT, // initial x position
  CW_USEDEFAULT, // initial y position
  CW_USEDEFAULT, // initial x size
  CW_USEDEFAULT, // initial y size
  NULL, // parent window handle
  NULL, // window menu handle
  hInstance, // program instance handle
  NULL) ; // creation parameters
   
  ShowWindow (hwnd, iCmdShow) ;
  UpdateWindow (hwnd) ;
   
  while (GetMessage (&msg, NULL, 0, 0))
  {
  TranslateMessage (&msg) ;
  DispatchMessage (&msg) ;
  }
  return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  HDC hdc ;
  PAINTSTRUCT ps ;
static int i,j;
  HRGN originhRgn,hRgn[4][4];
 
HBRUSH hBrush;
RECT rect;
 




   
  switch (message)
  {
  case WM_CREATE:

 
hBrush=CreateSolidBrush(RGB(255,0,0));

 
 
InvalidateRect(hwnd,NULL,TRUE);

   
  return 0 ;
   
  case WM_PAINT:

 
hdc=BeginPaint(hwnd,&ps);

 
if(i=0,i<3,i++)
 
if(j=0,j<3,j++)

{
 
hRgn[i][j]=CreateRectRgn(j*500/4,i*500/4,(j+1)*500/4,(i+1)*500/4);


rect.left=j*500/4;
rect.right=(j+1)*500/4;
rect.top=i*500/4;
rect.bottom=(i+1)*500/4;
FrameRect(hdc,&rect,hBrush);
DrawEdge(hdc,&rect,EDGE_BUMP ,BF_RECT);
 
 
}

EndPaint(hwnd,&ps);
   
  return 0 ;
   
  case WM_DESTROY:


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

[解决办法]
hdc=BeginPaint(hwnd,&ps);

  
for(i=0;i<3;i++)

for(j=0;j<3;j++)

这样才对,怎么能用if 当 for 用呢?

热点排行