ProcessMessage関数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
狼太郎

ProcessMessage関数について

#1

投稿記事 by 狼太郎 » 16年前

#include"DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
	if(ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init()==-1)return -1;
	int image[16];/*分割画像用変数*/
	int x=640-24;
	int x2=0;
	char Key[256];/*キー入力用変数*/
	LoadDivGraph("char.png",16,4,4,32,32,image);
	SetDrawScreen(DX_SCREEN_BACK);
	while(1){
		ClearDrawScreen();
		x-=3;
		x2+=3;
		DrawGraph(x,150,image[4],TRUE);
		DrawGraph(x2,350,image[12],TRUE);
		if(x<0)break;
		ScreenFlip();
	
	}
	DxLib_End();
	return 0;
}

#include"DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
if(ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init()==-1)return -1;
int image[16];/*分割画像用変数*/
int x=640-24;
int x2=0;
char Key[256];/*キー入力用変数*/
LoadDivGraph("char.png",16,4,4,32,32,image);
SetDrawScreen(DX_SCREEN_BACK);
while(!ProcessMessage){
ClearDrawScreen();
x-=3;
x2+=3;
DrawGraph(x,150,image[4],TRUE);
DrawGraph(x2,350,image[12],TRUE);
if(x<0)break;
ScreenFlip();

}
DxLib_End();
return 0;
}
と繰り返しの条件にProcessMessageを入れると実行されないままプログラムが終了してしまいます。
なぜですか?

Justy

Re:ProcessMessage関数について

#2

投稿記事 by Justy » 16年前


>ProcessMessageを入れると実行されないままプログラムが終了してしまいます
>なぜですか?

 ProcessMessageの関数のアドレスを評価して 0だった場合は whileループが実行されますが、
この場合 0ではないので while内が実行されず、そのまま WinMain関数が終了するからです。

 関数を実行したい時は ()をつけてください。

閉鎖

“C言語何でも質問掲示板” へ戻る