これを動かすには? – プログラミング – Home

通知
すべてクリア

[解決済] これを動かすには?


HACK
 HACK
(@HACK)
ゲスト
結合: 25年前
投稿: 1
Topic starter  

VC++6.0 WIN32 で、どうしても解決できないエラーがあります
ソースを見ていただけると幸いです

C:\Windows\デスクトップ\new\top.cpp(66) : error C2440: '=' : 'void *' から 'struct HBITMAP__ *' に変換することはできません。(新しい動作 ; ヘルプを参照)
'void*' から非 'void' 型への変換には明示的なキャストが必要です。

と出てしまいます。VC++5.0だと動いたんですが。
どうすればいいんでしょうか?

//ここからです
#include<windows.h>

HINSTANCE hInst;

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

char szWinName[]=Window_Sample;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpszArgs,int nWinMode){
HWND hwnd;
MSG msg;
WNDCLASS wcls;
//window class
wcls.hInstance=hInstance;
wcls.lpszClassName=szWinName;
wcls.lpfnWndProc=WinProc;
wcls.style=0;
wcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wcls.lpszMenuName=NULL;
wcls.cbClsExtra=0;
wcls.cbWndExtra=0;
//window back color
wcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
//window class
if(!RegisterClass(&wcls))return 0;
//print style
hwnd=CreateWindow(
szWinName,
あいうえお,
WS_OVERLAPPEDWINDOW,
50,
50,
550,
450,
NULL,
NULL,
hInstance,
NULL
);
//window print
ShowWindow(hwnd,nWinMode);
UpdateWindow(hwnd);
//message loop
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static HBITMAP hBit[3];
static HDC memDC[3];

switch(message){
case WM_CREATE:

hBit[1]=LoadImage(hInst,c:/windows/デスクトップ/new/stage1.bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);

hBit[2]=LoadImage(hInst,c:/windows/デスクトップ/new/main.bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);

hdc=GetDC(hwnd);

hBit[0]=CreateCompatibleBitmap
(hdc,500,400);

memDC[0]=CreateCompatibleDC(hdc);
memDC[1]=CreateCompatibleDC(hdc);
memDC[2]=CreateCompatibleDC(hdc);

ReleaseDC(hwnd,hdc);

SelectObject(memDC[0],hBit[0]);
SelectObject(memDC[1],hBit[1]);
SelectObject(memDC[2],hBit[2]);

break;

case WM_PAINT:
BeginPaint(hwnd,&ps);

BitBlt(memDC[0],0,0,500,400,
memDC[1],0,0,SRCCOPY);

BitBlt(memDC[0],0,0,100,100,
memDC[2],0,0,SRCCOPY);

BitBlt(ps.hdc,0,0,500,400,memDC[0],0,0,SRCCOPY);

EndPaint(hwnd,&ps);
break;

case WM_DESTROY:
DeleteObject(hBit[0]);
DeleteObject(hBit[1]);
DeleteObject(hBit[2]);

DeleteDC(memDC[0]);
DeleteDC(memDC[1]);
DeleteDC(memDC[2]);

PostQuitMessage(0);
break;

default:

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


引用未解決
トピックタグ
Niji
 Niji
(@Niji)
ゲスト
結合: 25年前
投稿: 5
 

はじめまして。
Nijiと申します。

hBit[1] = (HBITMAP) LoadImage( -------- );
のように、キャストすれば問題無くどうさしますよ。


返信引用
Niji
 Niji
(@Niji)
ゲスト
結合: 25年前
投稿: 1
 

あぁ( ̄□ ̄;)!!
間違ってチェックボックスにチェックしてしまいました…。
HACKさん、ごめんなさい…m(_ _)m


返信引用
HACK
 HACK
(@HACK)
ゲスト
結合: 25年前
投稿: 1
 

できたー

サンキュー

めちゃうれしいです


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました