2010-11-29 4 views
2

Я использую TWAIN 2.1 для подключения к сканеру, чтобы пользователь менял любую опцию и ожидал ввода, проблема всякий раз, когда отображается интерфейс сканера, курсор все еще указывает на определенный цикл или работает ,,, это следующий код:Отображение интерфейса устройства сбора данных


    HWND g_hwnd = CreateWindow ("STATIC", 
          "", 
          WS_POPUPWINDOW, 
          CW_USEDEFAULT, 
          CW_USEDEFAULT, 
          CW_USEDEFAULT, 
          CW_USEDEFAULT, 
          HWND_DESKTOP, 
          0, 
          g_hinstDLL, 
          0); 

    TW_USERINTERFACE ui; 
    ui.ShowUI = TRUE; 
    ui.ModalUI = TRUE; 
    ui.hParent = g_hwnd; 
    // g_pDSM_Entry -> 
    int code = (*g_pDSM_Entry) (&g_AppID, 
          &g_SrcID, 
          DG_CONTROL, 
          DAT_USERINTERFACE, 
          MSG_ENABLEDSUIONLY, 
          (TW_MEMREF) &ui); 

    if(TWRC_SUCCESS != code) { 
     return; 
    } 
    MSG msg; 
    while(GetMessage ((LPMSG) &msg, g_hwnd, 0, 0)){ 
     // TO-DO 
    } 

Как может ждать ввода пользователя и диалоговое окно не появляется, просто белое окно?

ответ

0

Вы считаете EZTwain? Это бесплатно и очень проста в использовании

http://www.dosadi.com/eztwain1.htm

В вашем случае, я думаю, что проблема с не реализации // TO-DO. TWAIN использует контур сообщения для связи, а также делает Windows (например, для рисования диалогов).

Я предполагаю, что ваша петля на самом деле делает что-то большее, но если нет, вам нужно разрешить пересылку сообщений.