不知道为什么,运行的时候都没有图片显示,更改窗口类型的话也是没效果..
#include <windows.h>
#include "resource.h"
#include "afxres.h"LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;HWND hwnd;
HWND childHwnd ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin");
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 // 子窗口,用来画棋盘和棋子
childHwnd = CreateWindow(wndclass.lpszClassName,
NULL,
WS_CHILD | WS_VISIBLE,
0,30,500,400,
hwnd,
NULL,
hInstance,
NULL);
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, hdc1, hdcMem ;
PAINTSTRUCT ps ;
// RECT rect ;
BITMAP bitmap;
static int cxSource,cySource;
HINSTANCE hInstance;
static HBITMAP hBitmap;
//int x,y;
switch (message)
{
case WM_CREATE:
PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
hInstance = ((LPCREATESTRUCT) lParam)->hInstance ; hBitmap = LoadBitmap (hInstance, LPCSTR(MAKEINTRESOURCEA(IDB_CHESSBOARD))); GetObject (hBitmap, sizeof (BITMAP), &bitmap) ; cxSource = bitmap.bmWidth ;
cySource = bitmap.bmHeight ; return 0; case WM_PAINT:
hdc = BeginPaint (childHwnd, &ps) ;
hdcMem = CreateCompatibleDC (hdc) ; SelectObject (hdcMem, hBitmap) ;
BitBlt (hdc, 0, 0, cxSource, cySource, hdcMem, 0, 0, SRCCOPY) ; DeleteDC (hdcMem) ;
EndPaint (childHwnd, &ps) ; //hdc1 = BeginPaint(hwnd,&ps);
//EndPaint(hwnd,&ps);
return 0 ;
// DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
// DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
//EndPaint (hwnd, &ps) ;
// return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
#include <windows.h>
#include "resource.h"
#include "afxres.h"LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;HWND hwnd;
HWND childHwnd ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin");
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 // 子窗口,用来画棋盘和棋子
childHwnd = CreateWindow(wndclass.lpszClassName,
NULL,
WS_CHILD | WS_VISIBLE,
0,30,500,400,
hwnd,
NULL,
hInstance,
NULL);
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, hdc1, hdcMem ;
PAINTSTRUCT ps ;
// RECT rect ;
BITMAP bitmap;
static int cxSource,cySource;
HINSTANCE hInstance;
static HBITMAP hBitmap;
//int x,y;
switch (message)
{
case WM_CREATE:
PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
hInstance = ((LPCREATESTRUCT) lParam)->hInstance ; hBitmap = LoadBitmap (hInstance, LPCSTR(MAKEINTRESOURCEA(IDB_CHESSBOARD))); GetObject (hBitmap, sizeof (BITMAP), &bitmap) ; cxSource = bitmap.bmWidth ;
cySource = bitmap.bmHeight ; return 0; case WM_PAINT:
hdc = BeginPaint (childHwnd, &ps) ;
hdcMem = CreateCompatibleDC (hdc) ; SelectObject (hdcMem, hBitmap) ;
BitBlt (hdc, 0, 0, cxSource, cySource, hdcMem, 0, 0, SRCCOPY) ; DeleteDC (hdcMem) ;
EndPaint (childHwnd, &ps) ; //hdc1 = BeginPaint(hwnd,&ps);
//EndPaint(hwnd,&ps);
return 0 ;
// DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
// DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
//EndPaint (hwnd, &ps) ;
// return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货