LRESULT CALLBACK WndProc(
HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){

PAINTSTRUCT ps;
HDC hdc;

switch(msg){
case WM_KEYDOWN:
 if( wParam == VK_ESCAPE ){
  hdc = BeginPaint(hWnd, &ps);
  TextOut(hdc,0,0,str,strlen(str));
  EndPaint(hWnd, &ps);
 }
 break;
case WM_PAINT:
 break;

エスケープキーで文字表示をやりたいけど
TextOut( ) が動作していないみたいでした。

switch(msg){
case WM_KEYDOWN:
 if( wParam == VK_ESCAPE ){
  hdc = BeginPaint(hWnd, &ps);
  TextOut(hdc,0,0,str,strlen(str));
  EndPaint(hWnd, &ps);
 }
 break;
case WM_PAINT:
 hdc = BeginPaint(hWnd, &ps);
 TextOut(hdc,0,0,str,strlen(str));
 EndPaint(hWnd, &ps);
 break;

とすると、常に文字が表示されたから、やっぱり
case WM_KEYDOWN: の中の TextOut( ) が
動作していないんだと思いました。
TextOut( ) は case WM_PAINT: からのつながりが
ある場合でないと実行されないんですか?
ソースのおかしいところがあったら教えてください。

A 回答 (3件)

BeginPaint(),EndPaint() が使えるのは WM_PAINT メッセージの時だけですよ。

それ以外の時には GetDC() と ReleaseDC()を使わないとなりません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
そんなことはないだろうと思っていたのに
case WM_PAINT でしか使えなかったんですね。

お礼日時:2001/12/09 00:18

> InvalidateRect(hWnd,NULL,TRUE);


> で、なぜか
> case WM_PAINT:
> が動作しました。

「なぜか」ではなく、InvalidateRect() が、そういう目的で使うために用意されて
いる API だから、です。別の質問であった ValidateRect() の逆ですね。

では、頑張って下さい。
    • good
    • 0
この回答へのお礼

InvalidateRect(hWnd,NULL,TRUE);
UINT に WM_PAINT を代入。

ValidateRect(hWnd,NULL);
UINT から WM_PAINT を消す。

という感じで覚えておくことにしました。
ありがとうございます。

お礼日時:2001/12/10 21:17

> エスケープキーで文字表示をやりたいけど



こういう時には、キーが押されたときに文字表示をするように作るのではなく、
再描画を促すように作る方が良いです。

InvalidateRect() だったかな。

このソースで描画されない理由は、No.1 の回答の通りです。
    • good
    • 0
この回答へのお礼

InvalidateRect(hWnd,NULL,TRUE);
で、なぜか
case WM_PAINT:
が動作しました。
ありがとうございます。

お礼日時:2001/12/09 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q効率の良い求人検索方法

効率が良い求人検索方法教えてください。

東京に本社又は支店がある事に加え、広島に支店がある企業求人を探してます。

探し方で良い方法がありましたら教えてください。

Aベストアンサー

求人サイトの勤務地を広島にして、キーワードを東京にする。たとえばこんな感じ。東京支社や東京本社の会社が出てくる。

http://hatalike.yahoo.co.jp/h/r/H102010s.jsp?SCA=05&st=P23&__u=13270239710913620205459647651716

Qdc.TextOut(0 ,0 , *str) ;について

環境 WIN98 VC++6.0 MFC にて

パターンBはOKですが、パターンAだと不正な処理で落ちてしまいます。

どうしてなのかお教えください。

void CFffView::OnPaint()
{
CPaintDC dc(this);
//パターンA
CString* str ;
str = (CString*)("999");
dc.TextOut(0 ,0 , *str) ;

//パターンB
CString aaa ;
aaa = (CString)("999");
dc.TextOut(0 ,0 , aaa) ;
}

Aベストアンサー

両方ダメ。
Aのパターンで動くのは、たまたま。

CString aaa ;
aaa = "999";
dc.TextOut(0 ,0 , aaa) ;

これで十分。

あえてキャストするんだったら、
CString aaa ;
aaa = (LPCSTR)"999";
dc.TextOut(0 ,0 , aaa) ;


aaa=のところでは、ただの代入が行われているわけではありません。
オーバーロードされたオペレータが呼ばれています。


>str = (CString*)m_array.GetAt(i) ;

これは、m_arrayの要素にCString*を入れていて、初めて成り立つ式です。
値をいれているところと、m_arrayの宣言を確認してください。

str = (CString*)("999");
も、
aaa = (CString)("999");
も、リテラル文字列をつっこもうとしています。
リテラル文字列とCStringはまったく別物です。

Qハローワークの障害者求人検索について

ハローワークの障害者求人検索について。

自宅のパソコンで障害者の求人情報を調べたいのですが、ハローワークインターネットサービスでの検索では求人数が少ないような気がするのですが全部は掲載されていないのでしょうか。在宅勤務の仕事を調べたいので全国全ての求人を探したいです。

また、実際にハローワークでタッチパネル式の検索機で障害者の求人を調べることはできますか?

最後に、ハローワークでファイルに綴ってある求人票をコピーすることはできるのでしょうか。

よろしくお願いします。

Aベストアンサー

私は札幌在住で障害者3級です。札幌ではハローワークには「みどりの窓口」という障害者専用求人のブースが別にあります。タッチパネル式の検索パソコンはありませんで、内容の違うファイルが5冊×2組で10冊あったかな?窓口の担当の方に言えばコピーはしてもらえました。

QWM_CHAR or WM_KEYDOWN の「wParam」について

よくわかっていないのですが、

switch (message)
{
case WM_CHAR:
というところで、wParamから、文字の情報取得して、
HDC宣言して、TextOut関数使用…、の途中で、
wParamの文字情報は、どのようにすれば
TextOut関数に渡せるのでしょうか?
Visual C++を勉強したてで、勉強の成果をと思い、
テキストエディタを作ってみたいと思ったのですが、
さて、どうしたらよいのでしょうか?
エラー内容は、unsigned int → const char *
にできません、ということなのですが、
じゃぁ、型の変換の仕方は?という感じです。
初心者なので、簡単な例をつけて説明してくださると助かります。よろしくお願いします。

Aベストアンサー

TextOut(~, (char*)wParam, ~);

と、char*型に型変換すると良い気がします。

--
TextOut関数の宣言、

TextOut(~, (const char*)szText, ~);

のconstキーワードは、
「TextOut関数に渡したwParamの値をTextOut関数の内部で書き換えることはありませんので安心してね。」
という意味ですので、

unsigned int
long double

などの2つの単語で宣言される「型」とは意味合いが異なります。
ヘルプの説明ですと釈然としませんが、参考URLなどを読んでみてください。

プログラマの正体!? - 誰が為にconst
http://www.asahi-net.or.jp/~vx2t-andu/lets/20020203.html

参考URL:http://www.asahi-net.or.jp/~vx2t-andu/lets/20020203.html

Qハローワークウェブでの求人検索エラー

ハローワークのサイトでの求人検索で、「アクセス異常が発生しました」とういうメッセージが出てしまいます。以前は正常に検索できたのですが、突然できなくなってしまいました。
どこを確認したら解決しますでしょうか?
よろしくお願いいたします。

Aベストアンサー

知人も利用しているのですがメンテナンス後は特に問題なく利用できています

試しに自分でも自宅(ADSL)職場(LAN)で見てみましたが大丈夫です

質問者様のネット環境に問題が発生しているのかもしれませんので

プロバイダーにご確認後、こちらにマシンと利用環境を補足なされば

詳しい方がいらっしゃるので何かしら解決口が見つかるかもしれません


あまりお役に立てなくて申し訳ございません

※蛇足ですがハロワネットは求人が全部公開されて無いので
 お近くのハロワにもいらっしゃると良いと聞きました
 良いお仕事見つかりますよう頑張って下さい!!

QhDC=::GetDC(m_hWnd)とhDC=GetDC(m_hWn

hDC=::GetDC(m_hWnd)とhDC=GetDC(m_hWnd)の違いについて

表題について,お伺いします。
ビットマップをダイアログに表示するソースコードを
書いてますが,参考書やさまざまなHPでは,
ウィンドウハンドルをゲットする際に

hDC=::GetDC(m_hWnd) ○
↑と書かれております。

hDC=GetDC(m_hWnd)  ×
↑はなぜだめなのでしょう。

 ●このスコープ演算子::は何の為につけているのですか?

::が無いとエラーになるので必要みたいですが・・

Aベストアンサー

どういうエラー(リンクエラー、コンパイルエラー)なのかがわからないので、
あくまで憶測ですが、
Windows.hで定義されているGetDC()の他に、
別のスコープに(例えばクラスのメソッドとして)、
GetDC()が定義されているのではないでしょうか?

上記の状態でスコープ演算子がないときには、
同じクラス(スコープ)にあるGetDC()を先に呼ぶことになるので、
目的のWindows.hのGetDC()を呼ぶことができないのだと思います。

参考URL:http://wisdom.sakura.ne.jp/programming/cpp/cpp7.html

Q重要な正社員求人検索項目の優先順位は?

勤務先の特徴検索は、正社員を探している人の立場から見てどの程度重要ですか?

下記の勤務先の特徴の優先順位を、応募者の立場から見て、どの項目を重視しますか?
優先順位を教えてください。

又はこれ以外で~のような言葉があったほうがいいというような重要項目があれば、教えてください。~のような
検索項目があったらいいな、など、


勤務先の特徴は、 下記のような言葉を予定しています。
未経験OK /
平均勤続年数10年以上 / がいこくじんOK /
上場企業 / 500名以上・大手企業 / 独立支援
語学力がいかせる / 寮・社宅完備 /

http://toranet.yahoo.co.jp/t/r/T101030s.jsp?ecd=01&__u=1192757996137-3462487833577911749のような
正社員求人検索を作りたいのですが、勤務先の特徴 の言葉の優先順位を悩んでいるのです。皆様の好きな語句の
優先順位を教えてください。




http://tenshoku.mynavi.jp/index.cfm?fuseaction=mrjh_listSearchresults_form&jobsearch_flg=6&search_flg=10&sr_occ_s_cd=1111111105&conv_cd_flg=1
のHPだと、

雇用形態は検索画面ではなく、
検索一覧のアイコンとだけ表示されています。
雇用形態は、下記の言葉を選択してアイコンとして検索一覧で表示させて正社員求人サイトを作ることを予定しているのですが、

正社員 /紹介予定派遣  /契約社員・臨時社員 / 転職支援・人材紹介


雇用形態は、マイナビのようにアイコンとして出すことで充分だと思いますか?
又は検索条件の中にも入れるべきだとおもいますか ? 


転職支援・人材紹介 は勤務先の特徴としてではなく、
雇用形態の選択の言葉に入れたほうがいいと思うですが、どう思われますか?

勤務先の特徴検索は、正社員を探している人の立場から見てどの程度重要ですか?

下記の勤務先の特徴の優先順位を、応募者の立場から見て、どの項目を重視しますか?
優先順位を教えてください。

又はこれ以外で~のような言葉があったほうがいいというような重要項目があれば、教えてください。~のような
検索項目があったらいいな、など、


勤務先の特徴は、 下記のような言葉を予定しています。
未経験OK /
平均勤続年数10年以上 / がいこくじんOK /
上場企業 / 500名以上・大手企業 /...続きを読む

Aベストアンサー

この質問文を拝見してご質問されたいことが多すぎて、分かりにくく、
非常に回答しづらい状況となっています。

>勤務先の特徴検索は、正社員を探している人の立場から見てどの程度重要ですか?

私にとって「勤務先の特徴」の優先順位は最も低いです。
なぜなら、往々にして事実に反することが多いからです。
(特に「未経験OK」「語学力がいかせる 」など)

それ以外のご質問は良く分からないのでお答えできません。すみません。

QダイアログのWM_KEYDOWNで処理を実行したい

現在、VC++6を用いて、MFC を使わずにアプリケーションを作っている初心者です。
最終的にはWIN_CEハンディーターミナルで動作させる予定です。

ダイアログにフォーカスがある状態で、"↓"キー入力があった場合に処理を行いたいのですが、
ダイアログ及び親ウインドウにWM_KEYDOWNが発生していないみたいなのです。
(SPY++にて確認しました。)

DialogBox、CreateDialogの両方でやってみたのですがうまくいきません。
なにか良い方法はありますか?
よろしくお願いします。

Aベストアンサー

詳しくないのでトッケンハッケンかもです。

IsDialogMessage関数は使ってますか?
この関数、タブキーが押されるとフォーカスを移したり、
[↓]キーが押されると次のコントロールを選択してくれたり
するっぽいんですが。

リンク先はMSDNのIsDialogMessageのところです。

参考URL:http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_isdialogmessage.htm

Q正社員の求人検索 アドバイスをお願いします

http://doda.jp/Front/JobSearch/View/JobSearchTop.aspx?from_global_navi=True の
ような正社員の求人検索を作ろうと思っているのですが、

残業時間の並び替え検索を作ろうと思っています。
毎月の平均残業時間は 又は 午後9時の時間帯までの残業の状況は? の2項目あったとしたら、
応募者の立場では、どちらの項目で検索をしたいですか?


毎月の平均残業時間
10時間以下、20時間以下、30時間以下、40時間以下、50時間以下、60時間以上、

午後9時の時間帯までの残業の状況は?
ほぼ無し、月に数回、月に半分以上、ほぼ毎週


毎月の平均残業時間の項目のほうがいいような気がしますが、
こちらを選ぶと、50時間、60時間と正直に答えた企業に応募者が応募するだろうか?
又は、並び替え検索だけ実地して、毎月の平均残業時間の数字の回答は画面には表示させないように
するかなど悩んでいるのですが、


正社員サイトを見ていると
http://www.gomez.co.jp/scorecards/index.asp?Section_id=SC&topcat_id=211
検索時に、エリアが県単位でしか検索できないようになっているサイトがほとんどのような気がしますが、
正社員を求める方にとってエリアは県ぐらいの範囲が検索できればいいのでしょうか。
必要性は感じませんか? もう県から少し地域を分類してもいいような気がしますが、

皆様は県より細かい地域検索のニーズがどの程度あると考えますか?

http://doda.jp/Front/JobSearch/View/JobSearchTop.aspx?from_global_navi=True の
ような正社員の求人検索を作ろうと思っているのですが、

残業時間の並び替え検索を作ろうと思っています。
毎月の平均残業時間は 又は 午後9時の時間帯までの残業の状況は? の2項目あったとしたら、
応募者の立場では、どちらの項目で検索をしたいですか?


毎月の平均残業時間
10時間以下、20時間以下、30時間以下、40時間以下、50時間以下、60時間以上、

午後9時の時間帯までの残業の状況は?
...続きを読む

Aベストアンサー

まず「残業時間」の件ですが、分かりやすいのは数字が等間隔の「毎月の平均残業時間」だと思います。

ただし、いくつか問題があり、
・正直に答える企業がどのくらいあるか不明。恐らく、ほとんどの企業は回答拒否すると思います。
(あまりに多いと労働法などに触れる可能性もあるので)

・時期によって残業時間も変動するため、あまり参考にならないこともあると思います。

・おっしゃるとおり、残業の少ない会社が検索されやすくなり、正直に50~60時間と申告した企業は不利になると思います。

といった理由から、残業時間を検索キーにすることは止めたほうが良いと思われます。


都道府県については、区市町村など細かいレベルにすると設定が面倒になる、
検索に時間がかかる、などの理由から、こちらも止めたほうが良いと思います。

Qchar *str; と char* str;

char *str; と char* str;
どっちも同じことを意味しているんですか?

Aベストアンサー

同じことを指している、というのは、先の回答の通りです。

また、ひとつの宣言で変数を複数宣言したときに、char* str という表記は間違い
易いじゃないか、ということが言われているのも事実です。実際、いろいろな C のソースを
見ていても、まずアスタリスクを型につけて書くのは、まずお目にかかれません。

ただ C++ では、char* str という宣言も良く使われています。

C++ に限らずオブジェクト指向の言語は、強く型を意識するので、「文字のポインタ型」と
いう意味で、まとめて書く方が馴染むのでしょう。ちなみにそういう風な人たちは

char *str1, *str2;

とは、書けない体になっています。

char* str1;
char* str2;


変数の宣言だと、C に慣れていれば、char* str というのはちょっと違和感があるのは
私も分かりますが、関数のプロトタイプ宣言だと、どちらの方がすっきりしますか?

extern char *memcpy(char *, const char *);

extern char* memcpy(char*, const char*);


# まあ、どっちが正しい、っていうんじゃ無いんですよね

同じことを指している、というのは、先の回答の通りです。

また、ひとつの宣言で変数を複数宣言したときに、char* str という表記は間違い
易いじゃないか、ということが言われているのも事実です。実際、いろいろな C のソースを
見ていても、まずアスタリスクを型につけて書くのは、まずお目にかかれません。

ただ C++ では、char* str という宣言も良く使われています。

C++ に限らずオブジェクト指向の言語は、強く型を意識するので、「文字のポインタ型」と
いう意味で、まとめて書く方が馴染む...続きを読む


人気Q&Aランキング