◀ANSI版開発トップへ
  • 3151 細かいことだが。
    • 3153 Re:細かいことだが。
    • 3154 Re:細かいことだが。
    • 3155 RE: 細かいことだが。
      • 3158 Re2: 細かいことだが。
        • 3164 Re3: 細かいことだが。
          • 3179 Re4: 細かいことだが。
            • 3186 Re5: 細かいことだが。
              • 3187 Re6: 細かいことだが。
                • 3191 Re: AboutBox
                  • 3200 Re2: AboutBox
                    • 3205 Re3: AboutBox
                • 3219 Re7: URL表示
                  • 3221 Re: URL表示
                    • 3223 Re2: URL表示
  • [3151] 細かいことだが。 wmlhq 2003年09月18日 11:27

    □「バージョン」ダイアログのURLの色を変え、下線をつけて欲しい。
    □「バージョン」ダイアログの背景を明るい色に変える(白や淡いピンクなど)。WM_CTLCOLOR*を使うこと。
    □操作系では...や:を正しく使って欲しい(・・・と・・・・は...に変えるなど)。
    □カラー表示をWindows標準に変える簡単な方法は?
    □ダイアログのタブ移動の順番を正しく。
    □初心者が戸惑わないように色指定リストのチェックをWindows標準のチェックボックスに近いデザインにする。
    □スクロールバーのメッセージをきちんと届けて欲しい。
    • [3153] Re:細かいことだが。 ryoji 2003年09月18日 18:46

      > □スクロールバーのメッセージをきちんと届けて欲しい。

      これって、ソース上のどの個所を問題視されているのでしょう?
    • [3154] Re:細かいことだが。 ryoji 2003年09月18日 18:53

      > □スクロールバーのメッセージをきちんと届けて欲しい。

      これって、ソース上のどの個所を問題視されているのでしょう?
    • [3155] RE: 細かいことだが。 みく 2003年09月18日 21:42

      >タイトル: RE: 細かいことだが。
      >発言者: wmlhq
      >□「バージョン」ダイアログのURLの色を変え、下線をつけて欲しい。
      >□「バージョン」ダイアログの背景を明るい色に変える(白や淡いピンクなど)。WM_CTLCOLOR*を使うこと。
      >□操作系では...や:を正しく使って欲しい(・・・と・・・・は...に変えるなど)。
      >□カラー表示をWindows標準に変える簡単な方法は?
      >□ダイアログのタブ移動の順番を正しく。
      >□初心者が戸惑わないように色指定リストのチェックをWindows標準のチェックボックスに近いデザインにする。
      >□スクロールバーのメッセージをきちんと届けて欲しい。

      個所が分かってたら、diffか行番号書いてください。
      • [3158] Re2: 細かいことだが。 wmlhq 2003年09月19日 15:57

        あんまり年寄りをいじめんでくだされ。若いんだから20分程度でできるじゃろ?

        >□スクロールバーのメッセージをきちんと届けて欲しい。
        これは特殊な用途で使おうと思った。じゃが、君たちには必要ないんじゃな。
        • [3164] Re3: 細かいことだが。 wmlhq 2003年09月20日 13:57

          まずは、背景を。ssrc_2003-09-20へのパッチ。
          diff -ur --dos sakura_core-old/CDlgAbout.cpp sakura_core/CDlgAbout.cpp
          --- sakura_core-old/CDlgAbout.cpp Sat Sep 20 01:41:16 2003
          +++ sakura_core/CDlgAbout.cpp Sat Sep 20 13:55:57 2003
          @@ -82,7 +82,10 @@
          }
          result = TRUE;
          break;
          + case WM_CTLCOLORDLG:
          + return m_hbrBkgnd;
          case WM_CTLCOLORSTATIC:
          + SetBkMode((HDC)wParam, TRANSPARENT);
          if( nCursorState == 1 &&
          (HWND)lParam == GetDlgItem(hWnd, IDC_STATIC_URL_UR ) ){
          ::SetTextColor( (HDC)wParam, RGB(0,0,0xff) );
          @@ -108,6 +111,9 @@
          result = TRUE;
          }
          break;
          + case WM_DESTROY:
          + DeleteObject(m_hbrBkgnd);
          + return FALSE;
          }
          return result;
          }
          @@ -176,7 +182,8 @@
          ::SendMessage( hIconWnd, STM_SETICON, (WPARAM)hIcon, 0 );
          }
          // To Here Dec. 2, 2002 genta
          -
          +
          + m_hbrBkgnd = CreateSolidBrush(RGB(0xff, 0xcc, 0xcc));
          /* 基底クラスメンバ */
          return CDialog::OnInitDialog( m_hWnd, wParam, lParam );
          }
          diff -ur --dos sakura_core-old/CDlgAbout.h sakura_core/CDlgAbout.h
          --- sakura_core-old/CDlgAbout.h Sat Sep 20 01:41:16 2003
          +++ sakura_core/CDlgAbout.h Sat Sep 20 13:53:50 2003
          @@ -36,6 +36,7 @@
          LPVOID GetHelpIdTable(void); //@@@ 2002.01.18 add
          private:
          int nCursorState;
          + HBRUSH m_hbrBkgnd;
          };
          • [3179] Re4: 細かいことだが。 げんた 2003年09月24日 02:03

            >まずは、背景を。ssrc_2003-09-20へのパッチ。
            ダイアログボックスに乗っているコントロールの背景が全然変わっていないのですが.

            WM_CTLCOLORSTATICでm_hbrBkgndを返すようにしたらEDITとSTATICは変わりましたけど,ボタンとスクロールバーは変化無しです.
            まぁそこまでこだわる必要はないように思いますけど
            • [3186] Re5: 細かいことだが。 げんた 2003年09月25日 01:09

              ダイアログボックスの色変更サンプル
              http://sakura-editor.sourceforge.net/snapshot/sakura-verdlg.zip

              あまり趣味がいいとは言えないけどなぁ.
              • [3187] Re6: 細かいことだが。 サイコジプシー 2003年09月25日 10:20

                白か#fffbf0の方がよさげです。スマソ。
                さて、テキストの色は常に青にしたいので。
                ...
                if( (HWND)lParam == GetDlgItem(hWnd, IDC_STATIC_URL_UR ) ){
                ::SetTextColor( (HDC)wParam, RGB(0,0,0xff) );
                if( nCursorState == 1 )
                result = (INT_PTR)(HBRUSH)GetStockObject(NULL_BRU
                SH);
                } else ...(以下同様)

                お次は下線。IDC_STATIC_URL_* に SS_OWNERDRAW|WS_TABSTOP スタイルを追加して
                BOOL CDlgAbout::OnDrawItem(...)
                {
                BOOL f = DefWindowProc(...); // 普通に描画? だめだったらTextOutで描いてやって。
                if((UINT)wParam == IDC_STATIC_URL_UR ||
                (UINT)wParam == IDC_STATIC_URL_ORG ) {
                LPDRAWITEMSTRUCT lpdis = (LP...)lParam;
                RECT& rc = lpdis->rcItem;
                MoveToEx(...); LineTo(...); // 下線を描く。色はこれでいいのか?
                if(lpdis->itemState & ODS_FOCUS)
                DrawFocusRect(lpdis->hDC, &rc); // キーボード操作用。
                f = TRUE;
                }
                return f;
                }
                URLフォーカス時にEnter押すとぶっ飛んでくれないかな?
                • [3191] Re: AboutBox げんた 2003年09月26日 01:55

                  >#fffbf0
                  なんかダイアログボックスがエディタの背景にとけ込んでしまって見にくいな.カメレオンみたいだ.

                  >お次は下線。IDC_STATIC_URL_* に SS_OWNERDRAW|WS_TABSTOP スタイルを追加して
                  ここはOK.

                  >BOOL CDlgAbout::OnDrawItem(...)
                  文字列表示はだめぽ.
                  GetWindowTextで文字列を取得してExtTextOutで描画.
                  文字列は自前で書くので,WM_CTLCOLORSTATICでの文字色設定は不要になった.

                  それと下線を青くするためにはPenを設定しなくてはならない.そのまま線を引くと黒くなってしまう.
                  文字の下に合わせるには文字の表示領域を取得して座標を計算する必要があると思ったが,
                  なんとなくうまくかけているので,現状でいいだろう.

                  >URLフォーカス時にEnter押すとぶっ飛んでくれないかな?
                  キー入力を拾って,nCursorStateに応じてブラウザを開けば良いような気がする.

                  あと,キーの上にカーソルを持っていったとき指の形になって欲しいとか.
                  それとカーソルを持っていったとき色が変わるのも捨てがたいんだけどなぁ.

                  ---
                  [現状]
                  http://sakura-editor.sourceforge.net/snapshot/sakura-verdlg2.zip

                  BOOL CDlgAbout::OnDrawItem( WPARAM wParam, LPARAM lParam )
                  {

                  if((UINT)wParam == IDC_STATIC_URL_UR ||
                  (UINT)wParam == IDC_STATIC_URL_ORG ) {

                  LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
                  RECT& rc = lpdis->rcItem;
                  POINT pt;

                  // Sep. 25, 2003 wmlhq 文字は常に青色
                  ::SetTextColor( lpdis->hDC, RGB(0,0,0xff) );

                  // 普通に描画? だめだったらTextOutで描いてやって。
                  HWND hCtl = GetDlgItem( m_hWnd, (UINT)wParam );
                  char buf[256];
                  GetWindowText( hCtl, buf, 256 );

                  ExtTextOut( lpdis->hDC, rc.left, rc.top, ETO_CLIPPED, &rc,
                  buf, GetWindowTextLength( hCtl ), NULL);

                  HPEN hPen = CreatePen( PS_SOLID, 1, RGB(0,0,0xff));
                  HPEN hOldPen = (HPEN)SelectObject( lpdis->hDC, hPen );

                  // 下線を描く。色はこれでいいのか?
                  MoveToEx(lpdis->hDC, rc.left, rc.bottom - 1, &pt);
                  LineTo( lpdis->hDC, rc.right, rc.bottom - 1);
                  if(lpdis->itemState & ODS_FOCUS)
                  DrawFocusRect(lpdis->hDC, &rc); // キーボード操作用。

                  SelectObject( lpdis->hDC, hOldPen );
                  DeleteObject( hPen );
                  }
                  return TRUE;
                  }
                  • [3200] Re2: AboutBox サイコジプシー 2003年09月29日 11:46

                    ビルドお疲れ。

                    > >URLフォーカス時にEnter押すとぶっ飛んでくれないかな?
                    > キー入力を拾って,nCursorStateに応じてブラウザを開けば良いような気がする.
                    お頼み申しあげます。

                    > あと,キーの上にカーソルを持っていったとき指の形になって欲しいとか.
                    WM_SETCURSORで、SetCursorすればー? 標準カーソルでしょ?

                    > それとカーソルを持っていったとき色が変わるのも捨てがたいんだけどなぁ.
                    (idHovered == wParam ? RGB(0xff,0,0) : RGB(0,0,0xff))
                    GetCursorPos,ScreenToClient,PtInRectでカーソル位置を確認して、FillRectで背景が描ける。

                    >文字列は自前で書くので,WM_CTLCOLORSTATICでの文字色設定は不要になった.
                    画面がちらついても私の責任ではない。

                    WS_TABSTOPのテスト成功。DrawFocusRectは失敗。なぜかTab押してもフォーカス枠が描かれない。(lpdis->itemState & ODS_FOCUS)では駄目。
                    • [3205] Re3: AboutBox もか 2003年09月30日 18:17

                      CDlgAbout関連なので、このツリーに書きます。

                      CDlgAbout::OnInitDialog()で、
                      FindFirstFile()しているのに、その戻り値のハンドルのチェックとFindClose()してません。
                • [3219] Re7: URL表示 げんた 2003年10月08日 09:01

                  URL上でカーソルを手の形にするためにはサブクラス化は避けられないみたい.あ~めんどくさ.
                  http://eureka.prits.jp/resources/developer/lib/ とかそのまま使っちゃいたいな.
                  • [3221] Re: URL表示 ryoji 2003年10月09日 00:48

                    > URL上でカーソルを手の形にするためにはサブクラス化は避けられないみたい.あ~めんどくさ.

                    ちょっと忘れましたが、SS_NOTIFYあたりと両立できなかったような?
                    違いますかね。
                    で、サブクラス化のやつをUPしてみました。

                    ssrc_2003-09-20との差分
                    http://www.egroups.co.jp/files/sakura-editor/Developer/Source/URL_2003-09-20.zip

                    Win98/2k/XP環境で簡単なテストはしてあります。
                    よかったら見てやってください。
                    配色はてきと~に標準色から選択して割り当てました。
                    #背景は通常のダイアログ色のが好きですが、いちおう白にしてあります。

                    • [3223] Re2: URL表示 げんた 2003年10月09日 02:20

                      >で、サブクラス化のやつをUPしてみました。
                      神キタ━━━━━━(゜∀゜)━━━━━━!!!!
                      しかも,完璧すぎる...

                      ありがたくちょうだいしておきます.と同時にあんないい加減なコード書き込まなければ良かったと自己嫌悪.