none
대화 상자 편집기에서 사용자 윈도우 클래스를 지정하는 방법 (How to specific a Window Class on Dialog Editor) RRS feed

  • 질문

  • 블루투스 장치를 선택하고 그 장치에 데이터를 보내는 프로그램을 짜고 싶은데요,

    선택 대화 상자에 추가 바이트를 설정하 고 싶은데 그려려면 클래스의 cbWndExtra 값을 늘려야 되잖아요,

    그런데 그려려면 따로 윈도우 클래스를 정의하여야 되잖아요,

    그런데 대화상자 편집기에는 사용자 클래스 이름을 입력하는 곳이 비활성화되어 있어요.

    바이너리 편집기에서 수작업으로 편집하면 되긴 되지만 편집을 완료할 때마다 다시 수정하여야만 되요.

    대화 상자 편집기에서 사용자 윈도우 클래스 이름을 지정할 수 있나요?

    없으면 바이너리 편집기 또는 코드로 설정하여야 하나요?

     

    I want to make an application which does select Bluetooth device and send a data to it.

    I want to change cbWndExtra in Window Class of my dialog on dialog resource so I can save some bytes on the dialog.

    But before I do that, I have to define a Window Class and set the cbWndExtra of the dialog to it.

    However, The cell of Dialog Editor which chooses Window Class is Disabled and I can't choose a Window Class of the dialog in Dialog Editor.

    It works to edit Dialog Resource in Binary Editor, But then I have to edit all the time I finished editing the dialog.

    Can I set Window Class of dialog in Dialog Editor?

    Or I have to choose it in Binary Editor or in Code?



    2011년 10월 18일 화요일 오전 7:21

답변

  • 리소스 스크립트 (.rc) 파일에서 해당하는 대화상자 리소스를 찾아 속성에 CLASS "<<클래스 이름>>" 을 추가하시면 됩니다.

    예 :

    IDD_DEVICE DIALOGEX 0, 0, 240, 177
    STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "NXT 선택.."
    CLASS "NXTSELDLG"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
        DEFPUSHBUTTON   "확인",IDOK,132,156,49,14
        PUSHBUTTON      "취소",IDCANCEL,183,156,50,14
        LTEXT           "조종을 원하는 NXT를 선택하십시오.",IDC_STATIC,7,7,126,8
        CONTROL         "",IDC_NXTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP,7,15,226,140
        PUSHBUTTON      "재검색",IDC_REQUERY,7,156,50,14
    END

    이렇게 해두면 편집기에서는 클래스 이름이 뜨지 않지만 사항은 적용되므로 다시 편집할 때마다 수정하실 필요가 없습니다.

     

    Resource Script (.rc) File에서 해당하는 대화상자 리소스를 찾아 속성에 CLASS "<<클래스 이름>>" 을 추가하시면 됩니다.

    Add CLASS "<<Class Name>>" in resource associated with the dialog in Resource Script (.rc) File.

    For example,

    IDD_DEVICE DIALOGEX 0, 0, 240, 177
    STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "Select a NXT.."
    CLASS "NXTSELDLG"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
    DEFPUSHBUTTON "OK",IDOK,132,156,49,14
    PUSHBUTTON "Cancel",IDCANCEL,183,156,50,14
    LTEXT "Select NXT you want to control.",IDC_STATIC,7,7,126,8
    CONTROL "",IDC_NXTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP,7,15,226,140
    PUSHBUTTON "Requery",IDC_REQUERY,7,156,50,14
    END

    If you do as follows, you don't need to change class name after editing the dialog.

    2011년 10월 20일 목요일 오전 11:17