Windows
やっと分かったぞ! せっかく調べたのでその方法を公開します。 ポップアップウィンドウを作るとき、 CreateWindow関数だと超簡単に親ウィンドウ(=オーナーウィンドウ)を設定できるけど、 子ウィンドウからポップアップウィンドウに変更するとなると そう…
プロセス関係の関数を作ったので置いておきます。 マルチプロセスのプログラムをデバッグしていると、 自分以外のプロセスを殺したくなりますよね。 いちいち手作業で殺すのはめんどくさいので、 自動で殺すためのお助け関数を作りました。 これでプロセス識…
ずっと昔ながらのプロファイルばかり使っていましたが、 意を決してレジストリを使うことにしました。 そこで、レジストリのクラスを作りました。 TRegistry.h //---------------------------------------------------------------------------- /// @file T…
最近なぜかしら@PAGESが繋がらなくなったので、ソース置き場をSiteMixに代えました。 ついでにVisual Web Developer 2010 Expressでサイトの構成をいろいろいじってる最中なもんで、 リンク先が頻繁に変更になってます。 記事ごとにリンクを直すのも大変なん…
一人でプログラムを作っているときにはそれほど必要に感じませんけど、 プロジェクトチームでプログラムを作っていると、 何が原因でプログラムが動かないのか気になりますよね。 そんなとき役に立つのが、やっぱログですよね。 そこで、しつこいぐらいにロ…
04/25 補助用のツールを作りました。 05/02 UNICODE 対応にしました。 05/04 ログ機能強化とフォルダ構成の変更を行いました。 main.h //---------------------------------------------------------------------------- /// @file main.h /// @brief VCプ…
04/26 フォルダの中身をエクセルのハイパーリンクにするやつを作りました。 05/02 UNICODE対応にしたので記事を更新しました。 05/04 ログ機能強化とフォルダ構成の変更を行いました。 main.h //----------------------------------------------------------…
エクセル用のハイパーリンク作成ツールを作っていて気がついたのですが、 何故だかハイパーリンクのJPGファイルを開こうとすると、 JPGファイルの既定のプログラムの設定を無視して、 超大っ嫌いなIEが立ち上がってしまうんですよね。 せっかくデフォルトの…
DLLにしてみるテスト いつもよく使う関数やマクロを共通ライブラリにしようと思って、 どうせならDLLの練習を兼ねてDLLにしてみました。家で使っているのはVC++ 2010 Expressなんですが、 こいつは2012 Expressなどと違って空のソリューションが作…
たぶんだけど、DLLで作ったクラス内で文字列定数をインラインで使用することはできない。 ていうかたぶん、ポインタを使うことはできないのではないのか。 それはたぶん、DLLだから実際にリンクされるまでアドレスが決定しないからなんだろね。たとえば clas…
Janssonのjson_file_load()関数でJSONファイルを読み込むと、 JSONオブジェクトの中身は、ハッシュテーブル処理の関係ででたらめになりまが、 これを何とかJSONファイルの元の並び順にする方法を見つけましたので報告します。それはjansson2.5のdump.cの中に…
はじめに 窓を分割する以外、なんにもしないプログラムを作りました。 窓好きの人にはお勧めです。 WinTestOne.zip CApplication.cpp CApplication.h CContainer.cpp CContainer.h CDockPane.cpp CDockPane.h CMainWnd.cpp CMainWnd.h CObject.cpp CObject.h…
はじめに 仕事でC#を勉強することになり、家でもC#をやろうと思いました。 がしかし会社のPCはWindows7なのに対し、うちのはVistaなのでVisual Studio 2012 Expressが動きません。 動かないんならインストールできないようにしてくれれば良いようなものを。 …
私は今しがた _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES の存在を知った。 どうやっても _tcscpy_s() がエラーを起こすからだ。 何故なのだ? 最近 Visual C++ 2010 Express を始めて、前のソースが警告だらけになるので _tcscpy() などを _tcscpy_s() のよう…
概要 もしかすると Vista だけかも知れないが、ウィンドウスタイルのスクロールバーを動的に追加したあと、 SetWindowPos() 関数の SWP_FRAMECHANGED だけだと水平スクロールバーの描画が不完全になる。 何かスクロールつまみの左側の影が表示されないような…
概要 テキストビュワーができました。但し、開くときの文字コードチェックが遅いのであとで改良します。 一度開いてしまえば、表示は速いですから。 1文字でも表示できない文字が入ってたらエラーではじいてるんですが、 ファイルサイズがでかいやつは、先…
概要 きのうテキストビュワーのテストしてたら、文字化けするテキストファイルがあったので調べたら文字コードが UTF-8 だった。 そこで変換方法をググって見たが、なかなかそのものずばりのサイトが見つからなかった。 仕方がないから UTF-8 の仕様を調べて…
概要 バイナリビュワーができました。ドキュメントウィンドウの中身としてビューウィンドウがある分けですが、 ビューウィンドウの派生クラスとしてファイルビューウィンドウがあって、 ファイルビューウィンドウの派生クラスとしてバイナリビューウィンドウ…
概要 ツリービューコントロールでファイルブラウザを作ろうのコーナーです。 世の中いろんなビュワーがあるけれど、ファイル開くのって大抵OSまかせじゃないですか。 別のファイル開くたんびにファイルオープンダイアログが表示されてすごい面倒じゃないで…
概要 メインウィンドウからツールバーとステータスバーを引いた残りのクライアント領域を以下の3つに分割します。 Output(出力画面) TreeView(ブラウザ) Document(ビュワー) 3つのウィンドウを梱包するためのウィンドウとしてコンテナウィンドウを準…
本日のメニュー メニュー追加 キーボードアクセラレータ対応 ツールバー追加 ステータスバー追加 プロファイル対応 実行画面と実行ファイルとソースファイル FileView.zip main.h main.cpp App.h App.cpp Window.h Window.cpp メニューの作成 HMENU hTopMenu…
はじめに 以前ウィンドウズプログラミング講座などという仰々しいタイトルを付けたもんだから、 敷居が高くなって何も書けない状態が続いてしまったので、ブログタイトルを作成日誌に変更しました。 これで公開ソースに多少バグがあっても大目に見てもらえる…
何とかフリーズ対策できました フィルタ情報およびピン情報から当該メディアが MPEG-2 形式であるかどうか分りました。 しかしピン情報では MP4 も MPEG-2 形式となるみたいでした。 MP4 はサードパーティのデコーダしか対応してないので問題ありません。 問…
超難問、DirectShow と Vista で MPEG-2 を再生する方法 いろいろ試しましたがダメでした。 XP では問題ないのに Vista で MPEG-2 ファイルを再生しようとすると必ずフリーズします。 グーグルでいろいろ調査した結果、どうやら Vista から MPEG-2 が標準サ…
sal.h が無くてもコンパイルできる方法があった。 sal.h をインクルードしてるのは dsound.h なのだが、 DirectX9 以前の dsound.h ではインクルードしていないのだ。 なので VisualStudio のオプションでインクルードディレクトリの順番を変えて、 DirectX1…
DirectShow 構築メモ 初めて DirectShow を使ってみた。 コンパイルエラーになった。 "sal.h" が無いと言われた。 手持ちの SDK を探したが無かった。 グーグルした。 ここにあった。 しかしISOイメージだった。 使用してる PC の DVD が壊れてるので DVD は…
憤りメモ マウスカーソルが移動したときにしか WM_SETCURSOR が発生しないのは貧弱すぎるのではないか。 何故ならば、キーボードの状態が変化したときにもカーソル形状を変更したいからだ。 かと言って、キーボードイベントはフォーカス所有者にしか来ないし…
メモ テキストビュワーを作っているんですが、 ウィンドウズ標準のエディットコントロールでわ余りに遅すぎだし、機能的にも不便すぎるので自分で作ってまんねん。 でもまだかなり時間がかかりそうなので、とりあえず かな漢字変換ウィンドウの位置をキャレ…
キャレット表示処理メモ 私はいま、異なる複数の子ウィンドウにキャレットを表示させようとして、ガッツリはまってしまいました。 何故かしら1つのウィンドウは表示されるのに、もう1つのウィンドウにはキャレットが表示されないのです。 何でかな? で、…
ご用心 まさか今どき16ビットが限界値とわ驚いたわ。 何がってウィンドウのサイズでがんす。 ドキュメントウィンドウの中身はテキストだったり、イメージだったり、3Dだったりするので、 ビューウィンドウをドキュメントウィンドウの子ウィンドウにして、 …