C++
LRESULT CALLBACK MyTrackProc(HWND hTrack, UINT msg, WPARAM wParam, LPARAM lParam) { DWORD dwPos, dwStart; RECT rect; POINT pos; switch(msg) { case WM_LBUTTONDOWN: GetWindowRect(hTrack, (LPRECT)&rect); GetCursorPos((LPPOINT)&pos); dwPos = (…
うぉらー、書いたぞー。 コードも公開予定だけど汎用化どころか整理も終わってないから今度。 トラックバーの名前を検索するところから始めたにしては上出来。 納得いくUIになったので今日は満足。 あとGroupBoxはうんこ。
レベルの選択RadioButtonと範囲指定のエディット&ラジオを置いてあったんですが これって使い易いですかね。 ラジオはともかく、レベル指定が数値入力ってのが微妙かなぁと。 でも上手いコントロールなんてないから自作コントロールになっちゃうのかな。 と…
調べごとしてる途中で面白い記事を見つけた。 forループを多重にする場合、ループ回数が多いものを内側に置くと処理が高速になる。らしい。 そんなアホなと思ったら本当に処理回数が変わっている。 初期化と最後の加算はforの実行につき1度余分に行われるか…
ラジオボタンって一括で取得できないのかな。 折角グループ化出来るのに、グループ内のどこにチェックがあるのか確認するマクロはないの。自分で書けってか。 本当に挙動のみのためのスタイルなんですね。 その関数書こうと思ってI/F確認したら属性種族のが…
つわけでこっちに手を出したはいいが、条件分岐がやっぱりめんどくさい。 通常・効果・儀式の分類と、トゥーンスピリットユニオンデュアルチューナーの特性をまとめて管理しようとしたところまではよかったけど 完全なバニラのフラグが0x00になっていて、単純…
魔法罠の検索は簡単だからやってしまおうと思ったら 種別をコントロールIDに割り振るのが不可能で泣いた。 フラグ式にしてたんですよ。速攻なら0x01、装備なら0x10、永続なら0x100みたいな。 それやると、連番で振ってるラジオボタンのコントロールIDに直で…
げっそー。 久々に触ったら何しようとしてたかわからんくなったし、 ちょいちょいっと不要なコード削っていってたらリストビューが表示されなくなって原因探って時間全部潰れた。 一括でいろいろ削ったり追加してたからどれが原因かわからず1つずつ脳みそ復…
にらめっこしてても無駄だと思ったので、 元ページのサンプルコード*1をクラスに起こしながら丸々コピー。 手書きってのはやっぱり頭に入るよね。動作追うのも楽チンだし。あとCがやっぱり一番読みやすいです。 でもって、最後まで書いて動作確認までして、 …
そろそろ検索に対応しようかとリストビューへのSetData関数を改造しようとするも、少し面倒なことに気が付いた。 今は読み込んだカードリストをそのまま代入しているような感じなのだが 起動時にチェックボックスを見ながら代入ってのも無駄な手間だし とい…
ListView_SetItemCountExについての理解が中途半端だったようで。 これでアイテム総数の概要を与えておけば、なぁなぁで表示してくれるんかと思っていたら、 そういうあやふやな話ではなく、これがそのままスクロールバーの移動範囲として設定されるようです…
振り仮名の長音処理を改善。 アカナイバスターが一番最初に来るカードなのか。 カードリストのキャプションで枚数表示がダミーのままだったのをとりあえずちゃんと書くように実装。 メインに入るカードの種類は現在5203枚らしい。環境にあるカードはこの内何…
長かった。 デバッグ一発目である程度の精度を持たせておかないとバグも拾えないし、 そのためのコード追いのみでの人力デバッグに時間がかかった。 今日の詰まりポイント。 _tcscpy_s(Buffer, BufSize, Text); このバッファサイズというのが曲者で。 最初、…
条件分けがやっぱり難しい。 一括で先頭から母音までを読み込んで子音文字列(len=1〜4)を取得、 switchでlenごとにifでチェックかけて促音撥音は拾ったらポインタ進めて処理してcontinue; case4は「nn+ny行」が確定しているからまぁいいとして、 case3,2はカ…
さくっと書き直そうと思ったら、拗音の処理を全くしていないことに気が付いた。 "kya"は"6k1"としていれば問題ないかと思いきや "ku","ke","ko"が"63","64","65"になるので余裕の順不同。 もちろん'y'に'2'を振ろうもんなら"あいやゆようえお"になってしまう…
試しにと思って縮小版、単純にアルファベットのソートレートを変更しただけのソートをしてみた。 まぁ悪くはないんだけどいろいろ細かいところが気になる。 土台にもなるしと思っていろいろいじってたら まともにソートできなくなったorz 例外処理の追記追記…
子音(1〜2)と母音(1)を最大3桁の1桁1〜31ぐらいの32進数文字列リテラルに変換、 同音異字の処理をセーフティなものにしながら比較時間を軽減。 拗音撥音長音促音のみ例外処理を設ける。 促音の処理はサンプル組んでいけそうなルートを見つけた。 しかし撥音…
いや、これ無理じゃね? 試行数・時間ともに無駄に膨大になる予感しかしない。 現状案で、 TCHAR Rubyから1つ目の母音を発見するまで読み込んで、 読み込んだ1〜4文字をLPCTSTR mapの中でマッチさせてint RateNumの同Index要素をTHCAR Rate末尾に追記。 これ…
もー、なんなの。 いろいろ調べた結果。 intからconst intへの暗黙キャストをしようとするとエラーを吐くと。 今回の僕の場合、sort内部の関数が比較関数に引数渡す時にそれ吐いちゃってるので 明示的にキャストすることができず、 あれ、それっておかしくな…
ベクターにクイックソートでもあるかと期待していたら それどころかベクターにはsort関数が存在しなかった。そんなバナナ。 普通のalgorithmのsortで皆やってるけど、それっておかしくないの。 だってvectorって≠配列で要素がアドレスで並んでるわけじゃなく…
よーやくオーナードロー完成。 結局、仮想リストビューで使用するLVN_GETDISPINFOを拾って、 そのlParamに格納されている行情報をオーナードローに流用することで実現しました。 リストビューのアイテムがはみ出すと...と省略記号つけて非表示になってしまう…
予感的中ー。 エクストラ用のファイルでは改行が\nのみで行われている。 行末・ファイル末尾の検索が失敗して1枚しかロードできてない。 こっちも更新されてたりしないかなと思って最新ファイルを拾ってみると メインファイルが\nに修正されてるorz 偶然だっ…
テキストなしバニラの処理も終わってReadFileとはこれでオサラバかと思いきや。 ずっと放置していたエクストラの読み込みが気になってテキスト見て唖然とした。 効果なしエクシーズと効果ありエクシーズを見分ける術がない。 シンクロのガイアドレイクデーモ…
そしてこいつ最高にアホ。 僕は僕の脳内データをもっと信用すべきだ。こないだまで自分を絶対に信用するなって言ってたのに。 昨日の日記に全て書いてありましたね。 「.txtを更新した」「"\n\n"が拾えない」「"他のテキスト", "\n"は拾える」 「エスケープ…
ええー。 やるかーと思ったら動きが変なんなる。 突き詰めていったらデータ読み込みが失敗している。 そういえば最後に.txt更新してから動かしてなかったわ。 カードごとの区切りに使っていたstrstr("\n\n");が失敗している模様。 scanfでは普通に区切りに使…
フラグ回収。 リストビューの仮想化とオーナードローの並列実装ってのがサンプルなくて。 そのやり方を探しながらいろいろやってたけど、全ての原因は横着して仮組みのままやろうとしてたことだった。 一応、仮想化はもう完璧。本実装まで出来てる。 オーナ…
LVS_OWNERDATAを設定して、仮想リストビュー化というものをしてみた。と思う。 相変わらず何をどうしてもWM_DRAWITEMを拾うことはできない。 他の方法を探す中で項目が1000を超える場合は仮想化が必要であることを知った。 これでアイテムの描画をこちらに一…
オーナードローどん詰まり。 まずTab上に作ってるからメッセージがWndProcまで上がってこないのだと気付く。 WM_NOTIFYからTab->ListViewの出したメッセージを吸い上げることに成功。 しかしWM_DRAWITEMが発生している様子が無い。 とりあえず親ウィンドウを…
タブコントロールの謎ScrBarを撤去。 ListViewの水平ScrBarを非表示。 種別アイコンをDOにあわせて自作。組み込み。 謎Barは上述。 リストの水平Barも意外と手ごわく、単純に非表示にしても再描画などで復活する。 WM_PAINTの頭にくっつければいいだけかと思…
col.cx = ShowScrollBar(hTab, SB_HORZ, true);こんなのが下のほうに書いてあって、指定ハンドルがどう見てもTabコントロールです本当にありがとうございました。 ていうかこれは何を想定して書かれていたんだろうな。 タブに表示する必要はもちろん、リスト…