掲示板ランキング  システムユーティリティ(レプリケータ)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.7064

スクロールバーコントロールについて
投稿者---クロ(2007/02/05 17:36:03)


スクロールバーコントロールのデータを取得し表示するプログラムを作成しており、
1つのスクロールバーを作成することは出来たのですが、
複数のスクロールバーを作成する方法がいまいち良く分かりません。
どなたか教えて頂けないでしょうか。

開発環境はWindowsXP visualstdio.net2003 C++言語で行っています。

主にこちらのサイトを参考にして作成しておりました。
http://web.kyoto-inet.or.jp/people/ysskondo/from16/chap17.html

以下は作成途中のプログラムの一部です。ほとんどサンプルと変わっておりませんが・・・。

// ウィンドウプロシージャー関数
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{   
    int sdata;
    char sdata2[100];
    int smax=45,smin=-45;
    sdata=GetDlgItemInt(hWnd,IDC_SCROLLBAR1,NULL,TRUE);

    switch(iMsg)
    {
    case WM_INITDIALOG:
        break;

    case WM_HSCROLL:
        switch(LOWORD(wParam)){
            case SB_LINERIGHT:
                sdata++;
                if(sdata>smax)
                    sdata=smax;
                break;
            case SB_LINELEFT:
                sdata--;
                if(sdata<smin)
                    sdata=smin;
                break;
            case SB_THUMBTRACK:
                sdata=((SHORT)HIWORD(wParam));
                break;
        }
        SetDlgItemInt(hWnd,IDC_SCROLLBAR1,sdata,TRUE);
        SetScrollPos(GetDlgItem(hWnd,IDC_SCROLLBAR1),SB_CTL,sdata,TRUE);
        sprintf(sdata2,"%d",sdata);
        SetDlgItemText(hWnd,IDC_EDIT4,sdata2);
        flag=1;

        return 0;
    }
    return FALSE;
}

よろしくお願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:スクロールバーコントロールについて 7070 wis 2007/02/06 10:55:51


No.7070

Re:スクロールバーコントロールについて
投稿者---wis(2007/02/06 10:55:51)


>スクロールバーコントロールのデータを取得し表示するプログラムを作成しており、
>1つのスクロールバーを作成することは出来たのですが、
>複数のスクロールバーを作成する方法がいまいち良く分かりません。

参照先のHPのスナップショットでの複数という意味なら
親ウィンドウの作成時にWS_VSCROLLを指定するか、
CreateWindow("SCROLLBAR","", WS_CHILD|WS_VISIBLE|SBS_VERT,10,10,150,300,hwnd,(HMENU)1,cs->hInstance,NULL);
が呼ばれていないかのどちらかです。
掲載されたコードからはどちらか不明です。
参照HPをもう一度読み直しましょう。


この投稿にコメントする

削除パスワード

No.7071

Re:スクロールバーコントロールについて
投稿者---クロ(2007/02/06 14:54:07)


返信ありがとうございます。
説明が不十分で申し訳ありません。

私が今作成しており悩んでいるところは、
2つのスクロールバーコントロールを作成し、
それぞれのデータを別々のエディットボックスに表示させるというところなのですが、

static LRESULT Wm_HScrollProc(HWND hWnd,int nScrollCode,short nPos,HWND hwndScrollBar)
{
    int sdata;
    char sdata2[100];
    int smax=45,smin=-45;
    GetDlgItemInt(hWnd,SB_CTL,NULL,TRUE);

    switch(nScrollCode){
    case SB_LINERIGHT:
        sdata++;
        if(sdata>smax)
        sdata=smax;
        break;
    case SB_LINELEFT:
        sdata--;
        if(sdata<smin)
        sdata=smin;
        break;
    case SB_THUMBTRACK:
        sdata=nPos;
        break;
    }
    SetScrollPos(hwndScrollBar,SB_CTL,sdata,TRUE);
    sprintf(sdata2,"%d",sdata);
    SetDlgItemText(hWnd,IDC_EDIT4,sdata2);
    flag=1;

    return 0;
}


プログラム中で
SetDlgItemText(hWnd,IDC_EDIT4,sdata2);
このようにデータを表示させてしまうと、
どちらのスクロールボックスのデータも同じエディットボックスで表示されてしまいます。

IDC_EDIT4を指定していて明らかに無理なのは分かりますが、
2つのスクロールボックスをどのように判定し、
データを表示させれば良いのか分からずずっと考えているところです。

参照HPを何度も読み直してはおりますが、なかなか答えを掴めていない状況です。
どなたか何かお気づきになられたら、ご教授していただければ幸いです。



この投稿にコメントする

削除パスワード

No.7075

Re:スクロールバーコントロールについて
投稿者---ぽへぇ(2007/02/06 21:10:01)


参照Webページのコードをどのくらい流用しているか不明ですが、
Wm_VScrollProc(HWND hwnd, int nScrollCode, short nPos, HWND hwndScrollBar)
の hwndScrollBar には スクロールバーのハンドルが渡ってきているはずです。

スマートかどうかはさておき、エディットボックスをIDC_EDIT4, IDC_EDIT5として、

    int  targetEditBox = 0;
    if(hwndScrollBar == GetDlgItem(hwnd, IDC_SCROLLBAR1)) {
        // 片方の処理
        targetEditBox = IDC_EDIT4;
    } else if(hwndScrollBar == GetDlgItem(hwnd, IDC_SCROLLBAR2)) {
        // もう一方の処理
        targetEditBox = IDC_EDIT5;
    }

のようにしておいて、
 SetDlgItemText(hWnd, targetEditBox, sdata2);
といったところでしょうか。



この投稿にコメントする

削除パスワード

No.7085

Re:ありがとうございました
投稿者---クロ(2007/02/08 09:41:56)


返信ありがとうございます。

非常に分かり易いプログラムの例まで提示していただき、
見事に悩みが解決いたしました。

これでまた先に進めそうですありがとうございました。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ