What's new

困るということは次の新しい世界を発見する扉である

2016年7月13日

トーマスエジソンの名言!
「困るということは、次の新しい世界を発見する扉である」
うまく言ったよねー。

こまってる最中はめっちゃストレスだけどね。
困っていることを解決させたからこそいえるのであって、困ってしまったままあきらめてしまったらめっちゃ敗北感が残る。
まぁだからこそ解決させたときはたまらなく気分がいい。

ぼくは最近MFCプログラミングをやってるんだけど…。
なにをいまさらという突っ込みは無しでお願いします(笑)。

ただでさえVisualC++とスクリーンリーダーの相性が悪いのに…。
そのうえMFCなんて…。
それよりもC言語でWindowsAPIプログラミングをしたほうがらくなのに…。

はい、ぼくもそう思うよ。

でも男には挑戦しなきゃいけないときがあるんだよ。
わけわからないね(笑)。

そんなことを考えながら作り始めた。
しかし、…いきなりMFCアプリケーションウィザードの読みがおかしい。
まぁでもショートカットキーで操作できるのと、MSDNのサイトにけっこう詳しい説明があったからなんとかクリア。

しばらくはプログラムコードを書くだけだったから問題なし。
わけわからない記述があってもぐぐったりすればOKだもんね♪

でも、ついにきた。
スクリーンリーダーの読みがおかしいプラス、どんなふうに操作したらよいのかがよくわからないという2重苦。

どんなプレイだよ。

そもそも何がしたいのかというと…。
一言で言うと「メッセージを受ける関数の構築」。

わかりやすく言うと…。
ウィンドウズ上で動くアプリケーションというのは、ウィンドウズからいろんなメッセージを受け取っている。

たとえば、アプリのウィンドウ上でマウスボタンが押されたとか、キーボードが押されたとか、サイズ変更されたとか…。
とにかくたくさんのメッセージが送られてくる。

これら大量のメッセージのなかから特定のメッセージを受けたときのみ反応するようにしたい。

もっと具体的には…。
マウスの左クリックを感知して、その座標を受け取る関数をつくりたい。

今まではアプリの外枠を作ったり、アプリのウィンドウの中に表示される図形を描く関数とかを作っていればよかった。
これらはプログラムの中から外に発信するメッセージだから、最低限の規則さえ守れば勝手に作ってよかったんだけど、メッセージを受ける場合はそうもいかない。

VisualC++に、ウィンドウズから送られてくるメッセージを特定の関数に登録するツールみたいなものがあって、そいつを操作しなきゃいけないらしいんだけど…。
スクリーンリーダーとの相性が悪いプラス、そのツールの使い方がよくわからないのだ。

操作方法はMSDNのページにあった。
ほかにも、マウスが左クリックされたときのメッセージ名や、受け取る関数名なんかもわかった。

でも、ぼくの操作がおかしいのか、スクリーンリーダーの読みが悪いのか…。
とにかく全然できなかった。

ならばということで、別の方法にもトライした。
作られる関数名がわかっているんだから、その名前で今までのように直接コードを書いてみたりした。

でもできなかった。
当然だよね、わざわざツールを使わせてるわけだから、普通のやり方でできたんじゃ意味ない。
またしても敗北!

すごくくやしかった。
ぶっちゃけここまで2週間ぐらいかけてるんだけど…。
それがこんなことでダメになるなんて…。

実は昨日も丸一日何とかしようとしてた。
そのおかげでブログも更新できなかったし…。

まぁでもできないものは仕方ない。

丸一日がんばって無理だったんだから、くやしいけどあきらめて…。
今日から気持ちを切り替えて、C言語でWindowsAPIを使って作ろうとした。

まぁでもぶっちゃけみれんたらたらなわけよ。

だから今朝も5時起きして調べてた。
でも切り替えるなら早いほうがいいのはたしかだから、引きずるのは朝食までだと決めてた。

そうしたら…あった…。

VisualC++のツールを使わないで、直接コードを書くことでメッセージを受け取る関数をつくる方法が。
これなら今までと同じような作業でOK。

昨日も直接コードを書くことで何とかできないかと思ってやってみたつもりだったけど…。
やっぱりしっかり調べないとダメだね。

今までどおり普通に関数を登録することプラス、メッセージを受け取る関数名を記述するエリアにも関数名を書かなきゃいけなかったことがわかった。

どきどきしながら作ったプログラムを動かしてみる。

問題なく動いた!
やった!

いやー、つかれたー。
まだアプリは完成してないけど、なんかもう完成した気持ちになったよ(笑)。

新しい世界への扉が少し開いた。