他人の空似自作物置場
一行入力ダイアログサンプル、リソースファイル邪魔なんだけどなんとかならないのかという思いが籠っている
プログラム名:一行入力ダイアログサンプル 用途:一行だけ文字を入力させたいけど、リソースエディタとか弄りたくない、もしくは弄れない人向け 使い方: ・input_dialog.hをincludeします ・callInputDialogを呼ぶコードを書きます ・input_dialog.cppと一緒にコンパイルします ・返り値に入力された文字が返ってきます、やったね! ・再度実行すると返り値は上書きされるので、利用する場合は文字列を別の場所にコピーして使ってください。 インストール: zip展開するだけ アンインストール: レジストリもテンポラリファイルも弄っておりません。 フォルダごと削除するだけですっきりさっぱりおさらばできます。 ファイル解説: input_dialog.cpp ダイアログ本体とかクラスとか色々 input_dialog.h callInputDialogのプロトタイプ sample.cpp 使用例 sample.exe コンパイル済み使用例 Readme.txt 今読んでいるこれ Q&A: Q:なんでリソースでもCreateWindowでもなくDialogBoxIndirect? A:やりたかっただけ、あとソース一つで済まないと他人に説明するの面倒。 Q:動かないんだけど A:中の人が酷いコード書きなので、環境により動かないかもしれません。 適当に直すか、作者にゴルァしてください。 Q:文字化けたんだけど A:charの方を呼ぶとsjisで扱えない文字は化けます。 wchar_tの方を呼べば安心。 Q:好き勝手カスタマイズして使っても良いの? A:いいの ここで手に入れたコードだって書く必要も無いから安心して使ってね。 (そんな酔狂な人が居るかは知らないけど) Q:その他バグをみつけた or 動作しない or 要望がある A:公開しても問題が無いメールアドレスにて 下部に記載されたアドレスまでメールをどうぞ。 対応可能な範囲であれば対応します。 作者:sweetie メールアドレス:bnryxx332a(あっと)mail.goo.ne.jp ライセンス: ・本ライセンスにおいて、全ての条項は「変更の有無を問わず、明示暗示を問わず、商業慈善を問わず、個人法人を問わず、保持使用を問わず、有料無料を問わず」と装飾されている物として扱う。 ・著作権者は本ソフトウェアに関する一切の保障義務をもたない。 ・上記条項唯一の例外として、本ライセンスに違反した場合を除いて著作権者から本ソフトウェアに関する一切の法的措置を受ける事が無い事のみ保証される。 ・著作権者やその他保持者がこのライセンスの範囲で行う活動に支障が無い範囲であれば何を行っても構わない。 ・上記条項の”何を行っても構わない”には本ソフトウェアの製作者を偽っての再配布も含まれる。 ・全ての権利の行使において、著作権者への連絡、著作権者やライセンス条項の記載、適用ライセンスなどの制限は一切存在しない。 著作権者名:sweetie 面倒な人向けライセンス解説: ライセンス記載義務すらありません。 再配布でも商用利用でも連絡無しで好き勝手できます。 スペシャルサンクス: Kuri-Applications.様 http://hp.vector.co.jp/authors/VA047249/program/tips/dlgmem.htm ぶっちゃけこの資料だけで作りました、素晴らしい情報をありがとう。 技術情報(と、どうでもいい話): helpIDとか結構省いている機能が多い。 実は個人的にリソースレスプログラミングがしたかったので、再利用可能なように多少は作りこんだつもり。 なので、callInputDialogの中身にあたる部分を好き勝手弄ればプロパティーシートでも何でもいけるはず。 ぽつーんと一つだけあるEDIT1は、最初コントロールを置くたびにIDを置いていくつもりだったけれど IDOKとIDCANCELを使っちゃったせいで、結局彼一人しか残らなかったという事情による。 const病を患ってしまったので、自作コードとコピペコードが一目瞭然。 たとえばプロシージャーだけ関数宣言にconst付いてないとか。 コントロールごとにカスタムな領域が置けるので、そこでうまいことすると 固定確保なしでも、毎回buffer渡す形でいけると思う。 そうすれば並列実行もいける!(※プロシージャーは別に用意しましょう) 実は初めてmallocではなくnewだけ使ったコード。 こんなだからベターC使いなどと呼ばれるのだが、実際そうなのでしょうがない。 ベターCこそが至高!! BS_DEFPUSHBUTTONってダイアログでしか動かなかったんですね、知りませんでした。 いや、他でも動くのかもしれないけど、自分には出来なかった、謎い。 ASSERTさんはデバッグ用なので、sampleみたいに容赦なく消し去ってください。 ……普通デバッグ用途だったらifndefではなくifdefであるべき気がするが気にしない。 C++の文字列とか、&受け取りとか コンパイラーさんが最適化ミスするのが怖くて使えないのは自分だけですかね? 以前のVS2005だと泣く泣くポインターに置きなおす事件ばかり起きて、半分トラウマなんですが。
- Readme.txt
- input_dialog.cpp
- input_dialog.h
- sample.cpp
sample.exe