初日 最新 目次 MAIL HOME


*-- To Tell The Truth --*
Cruz
MAIL
HOME

My追加

2001年05月30日(水)
続く苦しみ・・・

昨日から頑張っているのだが、
ちっともできそうな気配がない。

要するに私のやりたいことは、
ダイアログの中にあるリストビューのデータ表示を
データの内容に応じて文字色を変えたい

ってこと。

なぜできぬ〜?!

有名どころの猫でもわかる・・・を見ながらやっているんだけど・・・・
もしや、例はリストビューダイアログそのもので、
私のはリストビューがダイアログに含まれている形式だから・・?

こぉんなソースを書いたのだが・・・

 LPNMHDR lpnmhdr;
 LPNMLISTVIEW lplv;
 LPNMLVCUSTOMDRAW lplvcd;

 lpnmhdr = (LPNMHDR)lp;

 if (lpnmhdr->hwndFrom == hLV) {
  lplv = (LPNMLISTVIEW)lp;

  if(lplv->hdr.code == NM_CUSTOMDRAW) {
   lplvcd = (LPNMLVCUSTOMDRAW)lp;

   if (lplvcd->nmcd.dwDrawStage == CDDS_PREPAINT){
    return CDRF_NOTIFYITEMDRAW;
   }

   if (lplvcd->nmcd.dwDrawStage == CDDS_ITEMPREPAINT){
    lplvcd->clrText = RGB(0, 0, 255);
    return CDRF_DODEFAULT;
   }
  }
 }
 return TRUE;

CDDS_ITEMPREPAINTの値が返ってこないよぉ。

なぜ?なぜ?



2001年05月31日(木)
どこまでも続く(?)苦しみ

本日も一昨日からの続き。

とうとうCDDS_ITEMPREPAINT
受け取りを断念し、自力でMSDNの中をさらいだした。
しっかり日英翻訳ソフトまでゲットして・・・。

それでも解決するのかわからない。
もしかしたらリストビューはあきらめてリストボックスにしちゃうかも。

うーん、なんとかならないかなぁ?

*******

昨日の帰りに
Raffine
という、リフレクソロジーと
整体とをやっているお店へ行ってきた。
肩こりがどーにもならなくって・・・。

整体と足裏マッサージとのフルコースを受けてきたせいか、
今日は若干楽になった気が・・・。

肩こり&腰痛、これ絶対職業病だよな。



2001年06月01日(金)
FAXができない

いくらプログラムが作れても、マシンのセットアップを
自分ひとりでできても、FAXくらい送れないとかなり情けないです。

タイムシートの月末締め日に派遣会社へFAX送信しなきゃ
いけないのだけど、どーにもこーにも『未送信』になってしまう。

なぜだぁ?
FAX番号も合っているし、用紙の向きもOK
プリントされているFAX番号が間違っているんじゃないか?
・・・と、自分のことを棚に上げ、FAX番号の確認までする始末。

なんてことはない。
FAXも電話も市外外線は8発信なのだった。

8発信にしたら・・・無事送信完了。
やれやれ。



2001年06月02日(土)
宴会DAY

本日は新築祝いに親類(父方)が集まる日。
叔父&叔母が勢ぞろいする。

ウチの両親のところでの新築祝いなのだが、
2世帯住居になっているため、私達夫婦も参加しなければ
ならない。
まぁ、こういった事はこれからも仕方が無いだろう。

家を見に来るわけだから、念入りに掃除もしなければならない。
住みだしてまだ2ヶ月ほどだが、それなりに汚れはするものだ。
(猫たちも居るし・・・)
母に宴会準備を手伝えと言われていたが、自分達の部屋の掃除で
手一杯だった。
ごめん。。。

叔父&叔母も続々とやって来て宴もたけなわ。
叔父に、私達夫婦と同居することになって良かった等ということを言われる。
父も、自分達夫婦が亡くなったら夫婦2人でも広すぎるだろうから、
妹家族と同居してもいいし・・・等という事を言っている。
・・・ちょっと待て、夫婦2人でも広すぎるから?
私達はまだ子供をあきらめていないぞぉ?!

ちょっと引きつり気味のお愛想笑いをしていると、
いつのまにか話題は我が家の猫たちへ・・・。
三四郎が営業していた。



2001年06月03日(日)
寿司

ダンナとダンナの会社後輩が寿司を食べに行きたいと言う。
それも、去年まで住んでいた多摩まで・・・。
(いきつけの寿司屋がある)
夕方から出かけることになる。

出かける前に、私は『引っ越しましたハガキ』の
宛名印刷をしていた。
そんなに枚数はないのだが、プリンターがロートル過ぎて
1枚づつしかうまく印刷ができない。
・・・もう、寿命だな(←プリンター)。

寿司屋へは車で行った。
後輩君は彼女とバイクで来ていた。
寿司はあいかわらず美味い♪
寿司だけでなく、煮魚やらつぶ貝焼きやらも
食べることができる。

寿司屋を後にし、それじゃあ・・・と思ったら、
ゴルフの打ちっぱなしへ行こうと言う事になる。
・・・酒を抜くため?

家へ着いたのは12時過ぎ。
明日、会社なのにちゃんと行けるのだろうか?



2001年06月04日(月)
日曜日の夜遊びはやめましょう

やはり、昨日の夜遊びがこたえたのだろう・・・。
全然仕事に身が入らない。
集中力もない。
もう30代まっさかりなんだから、
夜遊びするには無理があるのよ。
・・・これから気をつけます。

そんなこんなで、仕事を切り上げとっとと帰宅する。

サッカーを見る。
ダンナが夕飯を作ってくれた。
ビールを飲む。
眠くなる。
ダンナはテレビを見ている。
少し寝る。
ダンナはアイロンがけを始める。
起きだしてモップがけをする。
ダンナが風呂を入れる。
猫トイレの片づけをする。
ダンナが風呂へ入る。
ボーっとテレビを見ている。
風呂へ入る。
ダンナはマシンルームへ消える。
先に就寝。

以上



2001年06月05日(火)
Multi Task Single User

とうとうかねてから悩みまくっていた
リストビューの行毎色変えを断念し、
リストボックスの行毎色変えまでも断念し、
リストビューでアイコン表示にしてみた。

紹介するまでもないが・・・一応(自分のために)覚え書。

===========

LRESULT CALLBACK MonitorProc(
 HWND hDlgWnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam)
{
 HWND hLV;
 DWORD dwStyle;
 HIMAGELIST hImage; //イメージリスト
 WORD lpwIcons[] = { IDI_NOICON , IDI_SAVE, IDI_WSCORE }; //イメージリストに載せるアイコン

 switch(message){
  case WM_INITDIALOG: // ウィンドウ初期設定
    // リストビューの初期設定
    hLV = GetDlgItem(hDlgWnd, IDC_MONI_LIST);
    dwStyle = ListView_GetExtendedListViewStyle(hLV);

    // リストビュー1行選択&カラム線
    dwStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
    ListView_SetExtendedListViewStyle(hLV, dwStyle);

    // アイコン設定
    hImage = SetImageListOnListView(hLV, lpwIcons, 3);

    // リストビューのヘッダ&データ出力
    SetListHeader(hLV);
    SetListData(hLV);

    break;
  case WM_COMMAND: // コマンド操作時
    return (Mon_CommProc(hLV, hDlgWnd, HIWORD(wParam), LOWORD(wParam), lParam, hImage));
  default:
    return FALSE;
  }
  return TRUE;

}

HIMAGELIST SetImageListOnListView(
  HWND hLV,
  WORD *lpwIcons,
  UINT uIconNum)
{
 UINT i;
 HIMAGELIST hImage;
 HICON hicon;
 int iIconSize,iImageList;

 // スモールアイコンのみ
 iIconSize = 16;
 iImageList = LVSIL_SMALL;

 if((hImage = ImageList_Create(
        iIconSize,
        iIconSize,
        ILC_COLOR4,
        uIconNum,
        0)) == NULL)
  return NULL;

 ListView_SetImageList(hLV, hImage, iImageList);

 for(i = 0;i < uIconNum;i++){
  hicon = LoadIcon(
      (HINSTANCE)GetWindowLong(hLV, GWL_HINSTANCE),
      MAKEINTRESOURCE(lpwIcons[i]));
  if(ImageList_AddIcon(hImage, hicon) == -1){
    ImageList_Destroy(hImage);
    return NULL;
  }
 }
 return hImage;
}

アイコンの指定はLV_ITEM構造体のiImageへ定義する。

===========

この方法でダイアログ内のリストボックスでもアイコン指定ができる。
データをリストビューに引き渡すのと同じ時にアイコン指定もできるので、
データの値ごとにアイコンを切り替えることも簡単である。

意外と簡単にできてしまったため、
諦めきれずにリストボックスの行毎色変えに再挑戦を始める。
※本日の題名と内容は関係ない。昔こんなネーミングで売り出されたOSがあったなぁ・・・くらいの思い付きである。