2

私はTWAIN2.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
   }

ユーザー入力をどのように待つことができますか?また、ダイアログは表示されず、白いウィンドウだけが表示されますか?

4

1 に答える 1

0

EZTwainを検討しましたか?無料でとても使いやすいです

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

あなたの場合、問題はを実装しないことにあると思います// TO-DO。TWAINはメッセージループを使用して通信し、Windowsも通信します(たとえば、ダイアログを描画するため)。

あなたのループは実際にはもっと何かをしていると思いますが、そうでない場合は、メッセージを送り出すことを許可する必要があります。

于 2010-11-29T18:34:00.873 に答える