lorenzi Postado Março 23, 2009 Denunciar Share Postado Março 23, 2009 Bom tarde,Pessoal tenho um novo problema, estou desenvolvolvendo um projeto pra smart devicee tenho um campo text na tela o nome dele é IDC_EDIT_LENgostaria de saber como consigo pegar a informação digitada neste campo tentei de varias formas mas não funciona:wsprintf(szLen , TEXT("%d"),(IDC_EDIT_LEN));hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN);camara são variaveis do tipo LPTSTR se informa no campo 5555 ou retorna ??? ou retorna 1001:camara = (LPTSTR) (hctl_length, szLen); /* retorna 1001*/camara1 = (LPTSTR) (szLen); /* retorna 1001*/camara2 = (LPTSTR) hctl_length; /* retorna ????*/camara3 = (LPTSTR) GetDlgItem(hwnd,IDC_EDIT_LEN); /* retorna ????*/camara4 = (hctl_length, szLen); /* retorna 1001 */dados = (LPTSTR)SCNBUF_GETDATA(lpScanBuffer);ponto = (LPTSTR)";";lfp = fopen("transf.txt","a");if(lfp){fwprintf(lfp,camara);fwprintf(lfp,ponto);fwprintf(lfp,camara1);fwprintf(lfp,ponto);fwprintf(lfp,camara2);fwprintf(lfp,ponto);fwprintf(lfp,camara3);fwprintf(lfp,ponto);fwprintf(lfp,camara4);fwprintf(lfp,ponto);fwprintf(lfp,dados);fwprintf(lfp,ponto);fclose(lfp);}Grato se alguém puder me ajudar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 w0lv3r1n3 Postado Março 24, 2009 Denunciar Share Postado Março 24, 2009 cara....não manjo muito de smart não....mas se tu manda o codigo agente pode dar uma olhadaabrass Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lorenzi Postado Março 25, 2009 Autor Denunciar Share Postado Março 25, 2009 cara....não manjo muito de smart não....mas se tu manda o codigo agente pode dar uma olhadaabrassopa o valor que eu preciso recuperar da tela e este campo IDC_EDIT_LEN#include <windows.h>#include <windowsx.h>#include <ScanCAPI.h>#include <stdlib.h>#include <math.h> #include <stdio.h>#include <string.h>#include <strsafe.h>#include <windows.h>#include <tchar.h>#include "resource.h" #define countof(x) sizeof(x)/sizeof(x[0])// Define user messagesenum tagUSERMSGS{ UM_SCAN = WM_USER + 0x200, UM_STARTSCANNING, UM_STOPSCANNING};// Global variablesHINSTANCE hInst = NULL;HANDLE hScanner = NULL;LPSCAN_BUFFER lpScanBuffer = NULL;TCHAR szScannerName[MAX_PATH] = TEXT("SCN1:"); // default scanner nameDWORD dwScanSize = 7095; // default scan buffer size DWORD dwScanTimeout = 2000; // default timeout value (0 means no timeout) BOOL bUseText = TRUE;BOOL bTriggerFlag = FALSE;BOOL bRequestPending = FALSE;BOOL bStopScanning = FALSE;BOOL bContinuousMode = FALSE;LPTSTR dados;LPTSTR ponto;LPTSTR camara;LPTSTR camara1;LPTSTR camara2;LPTSTR camara3;LPTSTR camara4;LPTSTR camara5;LPTSTR camara6;TCHAR szBuffer[256];int teste;// Forward declarationsLRESULT CALLBACK BasicScanProc(HWND,UINT,WPARAM,LPARAM);void ErrorExit(HWMD, UINT, LPTSTR);LPTSTR LoadMsg(UINT, LPTSTR, int);//----------------------------------------------------------------------------//// FUNCTION: WinMain(HINSTANCE, HINSTANCE, LPSTR, int)//// PURPOSE: Entry point function, initializes the application, instance,// and then launches the message loop.//// PARAMETERS:// hInstance - handle that uniquely identifies this instance of the// application// hPrevInstance - always zero in Win32// lpszCmdLine - any command line arguements pass to the program// nCmdShow - the state which the application shows itself on// startup//// RETURN VALUE:// (int) Returns the value from PostQuitMessage().////----------------------------------------------------------------------------int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpszCmdLine, int nCmdShow){ int nResult; hInst = hInstance; // save the instance handle to a global variable nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG_SSCAN), NULL, BasicScanProc); return nResult;}//----------------------------------------------------------------------------//// FUNCTION: BasicScanProc(HINSTANCE, HINSTANCE, LPSTR, int)//// PURPOSE: Application-defined callback function that processes messages // sent to BasicScan dialog. //// PARAMETERS:// hwnd - handle to the dialog box. // uMsg - specifies the message. // wParam - specifies additional message-specific information. // lParam - specifies additional message-specific information. //// RETURN VALUE:// (BOOL) return TRUE if it processed the message, and FALSE if it did not. ////----------------------------------------------------------------------------LRESULT CALLBACK BasicScanProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ DWORD dwResult; TCHAR szLabelType[10]; TCHAR szLen[MAX_PATH]; TCHAR szMsgBuf[256]; LPSCAN_BUFFER lpScanBuf; HWND hctl_data, hctl_length, hctl_type; /*cria e abre o arquivo*/ FILE *lfp; lfp = fopen("transf.txt","a"); switch(uMsg) { case WM_INITDIALOG: PostMessage(hwnd,UM_STARTSCANNING,0,0L); break; case UM_STARTSCANNING: // Open scanner, prepare for scanning, // and submit the first read request dwResult = SCAN_Open(szScannerName, &hScanner); if ( dwResult != E_SCN_SUCCESS ) { ErrorExit(hwnd, IDS_FAILURE, TEXT("SCAN_Open")); break; } dwResult = SCAN_Enable(hScanner); if ( dwResult != E_SCN_SUCCESS ) { ErrorExit(hwnd, IDS_FAILURE, TEXT("SCAN_Enable")); break; } lpScanBuffer = SCAN_AllocateBuffer(bUseText, dwScanSize); if (lpScanBuffer == NULL) { ErrorExit(hwnd, IDS_FAILURE, TEXT("SCAN_AllocateBuffer")); return TRUE; } dwResult = SCAN_ReadLabelMsg(hScanner, lpScanBuffer, hwnd, UM_SCAN, dwScanTimeout, NULL); if ( dwResult != E_SCN_SUCCESS ) ErrorExit(hwnd, IDS_FAILURE, TEXT("SCAN_ReadLabelMsg")); else bRequestPending = TRUE; break; return TRUE; case UM_STOPSCANNING: // We stop scanning in two steps: first, cancel any pending read // request; second, after there is no more pending request, disable // and close the scanner. We may need to do the second step after // a UM_SCAN message told us that the cancellation was completed. if (!bStopScanning && bRequestPending) SCAN_Flush(hScanner); if (!bRequestPending) { SCAN_Disable(hScanner); if (lpScanBuffer) SCAN_DeallocateBuffer(lpScanBuffer); SCAN_Close(hScanner); EndDialog(hwnd, 0); } bStopScanning = TRUE; return TRUE; case WM_ACTIVATE: // In foreground scanning mode, we need to cancel read requests // when the application is deactivated, and re-submit read request // when the application is activated again. switch(LOWORD(wParam)) { case WA_INACTIVE: hctl_data = GetDlgItem(hwnd,IDC_EDIT_DATA); hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN); hctl_type = GetDlgItem(hwnd,IDC_EDIT_TYPE); Edit_SetText(hctl_data, LoadMsg(IDS_INACTIVE, szMsgBuf, countof(szMsgBuf))); Edit_SetText(hctl_length, TEXT("")); Edit_SetText(hctl_type, TEXT("")); // Cancel any pending request since we are going to lose focus if (bRequestPending) dwResult = SCAN_Flush(hScanner); // Do not set bRequestPending to FALSE until // we get the UM_SCAN message break; default: // activating hctl_data = GetDlgItem(hwnd,IDC_EDIT_DATA); Edit_SetText(hctl_data, LoadMsg(IDS_READY, szMsgBuf, countof(szMsgBuf))); if (!bRequestPending && lpScanBuffer != NULL && !bStopScanning) { // Submit a read request if no request pending dwResult = SCAN_ReadLabelMsg(hScanner, lpScanBuffer, hwnd, UM_SCAN, dwScanTimeout, NULL); if ( dwResult != E_SCN_SUCCESS ) ErrorExit(hwnd, IDS_FAILURE, TEXT("SCAN_ReadLabelMsg")); else bRequestPending = TRUE; } break; } break; case UM_SCAN: bRequestPending = FALSE; // Clear the soft trigger bTriggerFlag = FALSE; SCAN_SetSoftTrigger(hScanner,&bTriggerFlag); // Get scan result from the scan buffer, and display it lpScanBuf = (LPSCAN_BUFFER)lParam; if ( lpScanBuf == NULL ) ErrorExit(hwnd, IDS_ERR_BUF, 0); hctl_data = GetDlgItem(hwnd,IDC_EDIT_DATA); hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN); hctl_type = GetDlgItem(hwnd,IDC_EDIT_TYPE); switch (SCNBUF_GETSTAT(lpScanBuf)) { case E_SCN_DEVICEFAILURE: Edit_SetText(hctl_data, LoadMsg(IDS_DEVICE_FAILURE, szMsgBuf, countof(szMsgBuf))); break; case E_SCN_READPENDING: Edit_SetText(hctl_data, LoadMsg(IDS_READ_PENDING, szMsgBuf, countof(szMsgBuf))); break; case E_SCN_READCANCELLED: if (bStopScanning) { // complete the second step of UM_STOPSCANNING SendMessage(hwnd,UM_STOPSCANNING,0,0L); return TRUE; } if (!GetFocus()) break; // Do nothing if read was cancelled while deactivation Edit_SetText(hctl_data, LoadMsg(IDS_READ_CANCELLED, szMsgBuf, countof(szMsgBuf))); break; case E_SCN_READTIMEOUT: if(bContinuousMode) PostMessage(hwnd,WM_COMMAND,IDC_BUTTON_SOFTTRIGGER,0L); break; case E_SCN_SUCCESS: /*mostra o codigo lido pelo leitor na tela*/ Edit_SetText(hctl_data, (LPTSTR)SCNBUF_GETDATA(lpScanBuffer)); /*armazena o que foi lido na variavel dados para direcionar para o arquivo*/ dados = (LPTSTR)SCNBUF_GETDATA(lpScanBuffer); ponto = (LPTSTR)";"; /*Gero a saida para o arquivo neste ponto*/ hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN); wsprintf(szLen, TEXT("0x%x"), GetDlgItem(hwnd,IDC_EDIT_LEN) ); wsprintf(szBuffer, L"%o", GetDlgItemText(hwnd,IDC_EDIT_LEN)); camara = (LPTSTR) ""; camara1 = (LPTSTR) szLen; camara2 = (LPTSTR) szLen; /*????*/ camara3 = (LPTSTR) szBuffer; camara4 = (LPTSTR) szLen; /*1001 */ lfp = fopen("transf.txt","a"); if(lfp) { fwprintf(lfp,camara); fwprintf(lfp,ponto); fwprintf(lfp,camara1); fwprintf(lfp,ponto); fwprintf(lfp,camara2); fwprintf(lfp,ponto); fwprintf(lfp,camara3); fwprintf(lfp,ponto); fwprintf(lfp,camara4); fwprintf(lfp,ponto); fwprintf(lfp,dados); fwprintf(lfp,ponto); fclose(lfp); } // Format label type as a hex constant for display wsprintf(szLabelType, TEXT("0x%.2X"), SCNBUF_GETLBLTYP(lpScanBuf)); Edit_SetText(hctl_type, szLabelType); /*wsprintf(szLen, TEXT("%d"), SCNBUF_GETLEN(lpScanBuf)); Edit_SetText(hctl_length, szLen); */ if(bContinuousMode) PostMessage(hwnd,WM_COMMAND,IDC_BUTTON_SOFTTRIGGER,0L); break; } // Submit next read request if we are foreground if (GetFocus()) { dwResult = SCAN_ReadLabelMsg(hScanner, lpScanBuffer, hwnd, uMsg, dwScanTimeout, NULL); if ( dwResult != E_SCN_SUCCESS ) ErrorExit(hwnd, IDS_FAILURE, TEXT("SCAN_ReadLabelMsg")); else bRequestPending = TRUE; } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BUTTON_SOFTTRIGGER: // Clear the state first before we set it to TRUE bTriggerFlag = FALSE; SCAN_SetSoftTrigger(hScanner,&bTriggerFlag); bTriggerFlag = TRUE; SCAN_SetSoftTrigger(hScanner,&bTriggerFlag); break; case IDC_CONTINUOUS: //Check for Continuous Scan Mode bContinuousMode = !bContinuousMode; if(bContinuousMode) PostMessage(hwnd,WM_COMMAND,IDC_BUTTON_SOFTTRIGGER,0L); break; case IDOK: // fall through case IDCANCEL: SendMessage(hwnd,UM_STOPSCANNING,0,0L); break; } return TRUE; } return FALSE;}//----------------------------------------------------------------------------//// FUNCTION: ErrorExit(HWND, UINT, LPTSTR)//// PURPOSE: Handle critical errors and exit dialog. //// PARAMETERS:// hwnd - handle to the dialog box. // uID - ID of the message string to be displayed // szFunc - function name if it's an API function failure //// RETURN VALUE:// None.////----------------------------------------------------------------------------void ErrorExit(HWND hwnd, UINT uID, LPTSTR szFunc){ TCHAR szMsg[256]; TCHAR szBuf[256]; if (szFunc == NULL) wcscpy(szMsg, LoadMsg(uID, szBuf, countof(szBuf))); else wsprintf(szMsg, TEXT("%s %s"), szFunc, LoadMsg(uID, szBuf, countof(szBuf))); MessageBox(NULL, szMsg, NULL, MB_OK); SendMessage(hwnd,UM_STOPSCANNING,0,0L);}//----------------------------------------------------------------------------//// FUNCTION: LoadMsg(UINT, LPTSTR, int)//// PURPOSE: Load a message string for the string table//// PARAMETERS:// uID - ID of the message string to be loaded// lpBuffer - buffer to hold the message string// nBufSize - size of lpBuffer//// RETURN VALUE:// (LPTSTR) pointer to lpBuffer////----------------------------------------------------------------------------LPTSTR LoadMsg(UINT uID, LPTSTR lpBuffer, int nBufSize){ if (!LoadString(hInst, uID, lpBuffer, nBufSize)) wcscpy(lpBuffer, TEXT("")); return lpBuffer;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lorenzi Postado Março 27, 2009 Autor Denunciar Share Postado Março 27, 2009 Ola pessoal resolvido em:http://social.msdn.microsoft.com/Forums/en...4a-fa0c2396e219 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
lorenzi
Bom tarde,
Pessoal tenho um novo problema, estou desenvolvolvendo um projeto pra smart device
e tenho um campo text na tela o nome dele é IDC_EDIT_LEN
gostaria de saber como consigo pegar a informação digitada neste campo tentei de varias formas mas não funciona:
wsprintf(szLen , TEXT("%d"),(IDC_EDIT_LEN));
hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN);
camara são variaveis do tipo LPTSTR se informa no campo 5555 ou retorna ??? ou retorna 1001:
camara = (LPTSTR) (hctl_length, szLen); /* retorna 1001*/
camara1 = (LPTSTR) (szLen); /* retorna 1001*/
camara2 = (LPTSTR) hctl_length; /* retorna ????*/
camara3 = (LPTSTR) GetDlgItem(hwnd,IDC_EDIT_LEN); /* retorna ????*/
camara4 = (hctl_length, szLen); /* retorna 1001 */
dados = (LPTSTR)SCNBUF_GETDATA(lpScanBuffer);
ponto = (LPTSTR)";";
lfp = fopen("transf.txt","a");
if(lfp)
{
fwprintf(lfp,camara);
fwprintf(lfp,ponto);
fwprintf(lfp,camara1);
fwprintf(lfp,ponto);
fwprintf(lfp,camara2);
fwprintf(lfp,ponto);
fwprintf(lfp,camara3);
fwprintf(lfp,ponto);
fwprintf(lfp,camara4);
fwprintf(lfp,ponto);
fwprintf(lfp,dados);
fwprintf(lfp,ponto);
fclose(lfp);
}
Grato se alguém puder me ajudar.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.