Archive for the ‘自作ソフト’ Category

メモ帳をC++で組み直そうの会。

木曜日, 10月 8th, 2009

ども。Mimura です。

 

実を言うと、つい先日の記事「開発再会。」のあと、開発しようと思ったのですが、

・・・見づらい。構造がわからん。なんだこれ。

 

ってなってしまったので、もういいよ! 作り直してやる!

という気分になって、まーた新規プロジェクトを作って、作り直すことにしました。

 

後はメモ書きですが、読む方は「続きを読む」から。

(続きを読む…)

開発再開。

火曜日, 10月 6th, 2009

image

次期版メモ帳の開発を再開しました。

現在公開中のものは、HSP で開発が行われたものです。
さすがに面白いことが出来なくなっているので、C++ で開発をし直すぞ-!と。気合いを入れてやってます。

C#にぞっこんラブしていた時期があまりにも長かったために、
・・なんでこー、面倒くさいことをやっているんだろう・・。なんて。思ってしまったりしています。

でも、C#でやれば、途中で「あー・・。これAPI直接呼べたらなぁ・・。でもManagedプログラムだし・・」というようなことが起きて。そう考えればC++っていいですね。はい。

とりあえず、めちゃくちゃクラス化してます。(なんだぞれ。

HSPで構築していたのは、どれがどれだか全く分からないようなコールをしていて、
全てをハンドルで操作していたので、「この子どれー」っていうことが起きたりしました。

でも、今回は、各パーツ(ツールバーとか、メニューなら1つのメニュー列)を一つのクラスにまとめて、
それをパズルで組み合わせる方式。オブジェクト指向ってやつを取り入れてみたわけです。

(最近トレンド(?)のオブジェクト指向です。うん。 (ぇ

やっぱり、流行っているだけあって、開発がぐんとし易くなりました。見やすいコードっていいですね。
・・そんなわけで、スクリーンショットのクラスさんはMicrosoft が用意したやつ(MFC or ATL or .NET)じゃなくて、自前で書いてます。このやり込み方がいい。(?

 

開発開始日を見てみたのですが、1年前の9月ですか。そういえば、ICTスクール2008に参加したときに、新幹線の中で富士山とか見ながら書いたっけ・・w 懐かしい。

 

とりあえず、埃をかぶってそうなレベルの要望一覧を引っ張り出してきて開発してます。
(デジタルデータだから埃かぶるわけはないのです。うん。

まぁー・・。ぼちぼち、このプログラムとSTEP_M(C# Version. 名前をいい加減に変更しよう。うん。)の開発を行っていくかなぁ・・。うん。

MFC と WIN_VER

金曜日, 1月 30th, 2009

うーん。MFC には相当の裏がありそうだなぁ・・。 ・・。ども Mimura です。

STEP_M のフォントサイズ問題で悩んでいたのですが、

ソースコードは一緒なのに、なんでコンパイルした結果が違うのさ。と。

 

MFCは奥が深いです。Microsoft のパンドラの箱。のような気もしないでもないですが、どうなんでしょうか。

少なくとも、SDKプログラミングばっかりやってた自分には、ちょっと謎です。

 

Vista の動作結果ではほぼ変わらないのですが、

XPで動かすとすばらしく変わります。なんで。と思うほど。

 

(同じソースコードですが、頭に WIN_VER 指定をかけてあります。)

 

現在公開中のもの (WIN_VER = 0×600 (Windows Vista))

image

 

XP 宣言したもの(WIN_VER = 0×501 (Windows XP or 2003))

image

なんでこー。ツールチップのサイズがここまで変わってくるのさー!!

 

・・そんなわけで、最初の修正の時にはツールチップのフォント取得部分がおかしいんだろう。と思って、フォント設定をシステムフォントから取得するようにしましたが、

まさか、本当の答えは WIN_VER だったとは。

 

・・。挙動が変わられても困ります。本当に。

MFC怖いなぁ。と思った今日この頃です。

 

(Microsoft さん。教えてもらえるとありがたいです。このあたりについて・・。 あ。あれですか。 .NET つかえ! っていうことですか。多分そうですか。)

GetMessage の書き方について。

土曜日, 1月 24th, 2009

GetMessage について何かおもしろい使い方がないかな・・。と調べてみましたら、

おもしろい記述が見つかりました。

GetMessage はメッセージループの部分に書かれており、大抵は

while (GetMessage(&msg, NULL, 0, 0)){
         TranslateMessage(&msg);
         DispatchMessage(&msg);
}

という風に書かれています。

私がいつも見に行く解説サイトを見直してみてもそうでしたし、

過去に書いたソースコードもそうなっていました。

 

ですが、 MSDN の GetMessage 関数の説明を見てみますと、
MSDN:GetMessage 関数

エラーが発生した場合、-1 が返ります。

たとえば、hWnd パラメータで無効なウィンドウハンドルを指定した場合や、
lpMsg で無効なポインタを指定した場合は、エラーが発生します。

拡張エラー情報を取得するには、 関数を使います。

ということで。
そして、英語版MSDNではこんな感じのサンプルが上がっていました。

BOOL bRet; 
while((bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0) { 
         if (bRet == -1) {
              // handle the error and possibly exit
        }
        else
       {
             TranslateMessage(&msg);
             DispatchMessage(&msg);
       }
}

うーむ・・。

GetMessage の戻り値は BOOL のはずでは・・? と。思ってしまったり。

でも、BOOL って結局 int になってますから、 型としてはあっているんでしょうけど。

 

にしても・・。 BOOL だったら、 == 0 or != 0 でせう。と。

まぁー・・。そんな感じで。

STEP 改造。

日曜日, 12月 7th, 2008

SuperTagEditor

MERCURY様 制作 を

haseta 様が改良して STEP を制作して、

それをさらに改造したものを公開してみました。

 

MP3 の 作詞者/作詞 (TEXT) タグとアルバムアーティスト に対応してみました。

あとは、開発しやすいように Visual Studio 2008 (Visual C++ 2008でも可能)でコンパイルできるようにしてみました。

 

GNU ライセンスなので、ソースコードとプログラムを両方公開する形となりましたが、

ソースコードのコンパイルをするときに警告が嫌と言うほど出てくるかと思います。

SDKのプログラムであれば、何とかなるのですが、MFCなので私にはちょっとわかりませんが・・。

わかる方がいらっしゃいましたら、よろしくお願いします。 (ぇ

私も暇が出来ましたら、警告をなくすために努力しようかと思っておりますが・・。

 

あ・・あと、

もちろんですが、要望などは原作者様などに連絡しないようお願いしますね。

 

WebSite : http://mimura.dyndns.tv/

DL : http://mimumimu.net/beta/#STEP_M

 

・・・んー。ブログからスムーズにトップページに移動できないだろうか・・と考える。