メッセージボックスが表示されない?

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

メッセージボックスが表示されない?

#1

投稿記事 by kaira » 13年前

コード:

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd)
{
	HWND HmainWnd;
	HmainWnd=ProcessWindow(hInst);//ウィンドウを作成して表示する
	
	if (HmainWnd==NULL)
	{
		return 0;
	}

	// メッセージループ
	while(GetMessage()==0)
	{
		if (GetKey()==KEY_A)
		{
			MessageBox(HmainWnd,_T("Aがクリックされた"),_T("ほうこく"),MB_OK);
		}
	}

	return 0;
}
上記のコードでGetKey()関数がKEY_Aを返したときにMessageBox()関数でメッセージボックスを表示させようとしていたのですが、
親ウィンドウ(HmainWnd)が非アクティブになるだけで何も起こらず、困っています。

何故表示されないのでしょうか?

kaira

Re: メッセージボックスが表示されない?

#2

投稿記事 by kaira » 13年前

コード:

#include <windows.h>
#include <tchar.h>
#include "WNDKEYadmin.h"

// 開始位置
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd)
{
	HWND HmainWnd;
	HmainWnd=ProcessWindow(hInst);//ウィンドウを作成して表示する
	
	if (HmainWnd==NULL)
	{
		return 0;
	}


	while(ProcessMessage()==0)//メッセージの処理(Dxlibのものとは関係なし)
	{
		if(GetKey()==KEY_A)
		{
			MessageBox(HmainWnd,_T("Aがクリックされた"),_T("ほうこく"),MB_OK);
		}
	}

	return 0;
良く見たらコードが昔の物の上include文が入っていないという失敗をしてしまったので修正いたしました。

だんごさん
記事: 273
登録日時: 14年前

Re: メッセージボックスが表示されない?

#3

投稿記事 by だんごさん » 13年前

質問ですが、あなたはDxLib上でメッセージボックスを表示させたいのですか?
というかDxLib上で表示ですよね?
 Dango San

kaira

Re: メッセージボックスが表示されない?

#4

投稿記事 by kaira » 13年前

だんごさん さんが書きました:質問ですが、あなたはDxLib上でメッセージボックスを表示させたいのですか?
というかDxLib上で表示ですよね?
いえ、違います。
Win32APIを使用しての表示です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: メッセージボックスが表示されない?

#5

投稿記事 by softya(ソフト屋) » 13年前

kaira さんが書きました:
だんごさん さんが書きました:質問ですが、あなたはDxLib上でメッセージボックスを表示させたいのですか?
というかDxLib上で表示ですよね?
いえ、違います。
Win32APIを使用しての表示です。
動作して状態を再現できるコードをお願いします。
たぶん、同じ状況にしないと再現しないかと。
出来ればコンパクトなコードを作ってもらえると助かります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

kaira

Re: メッセージボックスが表示されない?

#6

投稿記事 by kaira » 13年前

softya(ソフト屋) さんが書きました:
kaira さんが書きました:
だんごさん さんが書きました:質問ですが、あなたはDxLib上でメッセージボックスを表示させたいのですか?
というかDxLib上で表示ですよね?
いえ、違います。
Win32APIを使用しての表示です。
動作して状態を再現できるコードをお願いします。
たぶん、同じ状況にしないと再現しないかと。
出来ればコンパクトなコードを作ってもらえると助かります。
コードです。
http://kie.nu/nFz

kaira

Re: メッセージボックスが表示されない?

#7

投稿記事 by kaira » 13年前

いつのまにか普通に表示されていました(何故・・?)
ということでこのトピックは解決とさせて頂きます。
ご協力してくださった皆さん、ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: メッセージボックスが表示されない?

#8

投稿記事 by softya(ソフト屋) » 13年前

日頃MFCの人なので解決策は提示できませんが動作が怪しいです。
メッセージループでMessageBoxを呼び出すのはやめておいたほうが良いと思います。
あと'A''を一度押すと別のコントールキーで何度でもウィンドウが出ます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mao1756
記事: 1
登録日時: 13年前
連絡を取る:

Re: メッセージボックスが表示されない?

#9

投稿記事 by mao1756 » 13年前

softya(ソフト屋) さんが書きました:日頃MFCの人なので解決策は提示できませんが動作が怪しいです。
メッセージループでMessageBoxを呼び出すのはやめておいたほうが良いと思います。
あと'A''を一度押すと別のコントールキーで何度でもウィンドウが出ます。
ありがとうございます。
解決した時に何度でもウィンドウが出る状況になっていたので修正しました。

閉鎖

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