Я создаю диалог в Windows CE, используя Windows 5.0 Mobile SDK и WIN32, используя C с Visual Studio 2008. Я использую константы SW_SHOW и SW_HIDE с функцией ShowWindow, чтобы скрывать и отображать элементы управления на моем диалоговое окно, состоящее из элементов управления stati c text (метки) и edit text (textboxes). Я использую Resource Editor и Toolbox, чтобы перетащить свои элементы управления в диалоговую форму. Для некоторых элементов управления я установил для свойства Visible значение false. Когда я нажимаю кнопку, невидимые элементы управления становятся видимыми, а видимые элементы управления становятся невидимыми.
Однако, похоже, только мои элементы управления для редактирования текста (текстовые поля) отображаются и скрываются, но функция ShowWindow, похоже, не имеет любой эффект на мой текст c (ярлыки) - они не скрываются и не отображаются. Ниже мой код. Почему это так?
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <windowsx.h>
#include <winuser.h>
#include "ScanCAPI.h"
#include "resource.h"
#pragma comment(lib, "Kernel32.lib")
LRESULT CALLBACK BasicScanProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
DWORD dwResult;
TCHAR szLabelType[256];
TCHAR szLen[MAX_PATH];
TCHAR szMsgBuf[256];
LPSCAN_BUFFER lpScanBuf;
HWND hctl_data, hctl_length, hctl_type, hctl1, hctl2, hWndComboBox, hnd_static5, hnd_static6, hnd_static7, hnd_pic1, hnd_pic2, hnd_static1, hnd_static2, hnd_static4, hwd_button1, hwd_static5, hwd_static6, hwd_static7, hwd_edit1, hwd_edit2;
switch(uMsg)
{
case WM_COMMAND:
hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN);
hctl_type = GetDlgItem(hwnd,IDC_EDIT_TYPE);
hWndComboBox = GetDlgItem(hwnd,IDC_COMBO1);
hnd_static1 = GetDlgItem(hwnd,IDC_STATIC1);
hnd_static2 = GetDlgItem(hwnd,IDC_STATIC2);
hnd_static4 = GetDlgItem(hwnd,IDC_STATIC4);
hctl_data = GetDlgItem(hwnd,IDC_EDIT_DATA);
hctl_length = GetDlgItem(hwnd,IDC_EDIT_LEN);
hwd_button1 = GetDlgItem(hwnd,IDC_BUTTON1);
hwd_static5 = GetDlgItem(hwnd,IDC_STATIC5);
hwd_static6 = GetDlgItem(hwnd,IDC_STATIC6);
hwd_static7 = GetDlgItem(hwnd,IDC_STATIC7);
hwd_edit1 = GetDlgItem(hwnd,IDC_EDIT1);
hwd_edit2 = GetDlgItem(hwnd,IDC_EDIT2);
switch (LOWORD(wParam))
{
case IDC_BUTTON1:
ShowWindow(hnd_static1, SW_SHOW);
ShowWindow(hnd_static2, SW_SHOW);
ShowWindow(hnd_static4, SW_SHOW);
ShowWindow(hctl_data, SW_SHOW);
ShowWindow(hctl_length, SW_SHOW);
ShowWindow(hWndComboBox, SW_SHOW);
ShowWindow(hwd_button1, SW_HIDE);
ShowWindow(hwd_static5, SW_HIDE);
ShowWindow(hwd_static6, SW_HIDE);
ShowWindow(hwd_static7, SW_HIDE);
ShowWindow(hwd_edit1, SW_HIDE);
ShowWindow(hwd_edit2, SW_HIDE);
}
И ниже, пожалуйста, найдите содержимое моего заголовочного файла Resource.h:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by BasicScan.rc
//
#define IDD_DIALOG_SSCAN 101
#define IDI_ICON1 102
#define IDC_STATIC1 995
#define IDC_STATIC2 996
#define IDC_STATIC3 997
#define IDC_STATIC4 998
#define IDC_STATIC5 999
#define IDC_EDIT_DATA 1000
#define IDC_EDIT_LEN 1001
#define IDC_EDIT_TYPE 1002
#define IDC_BUTTON_SOFTTRIGGER 1003
#define IDC_CONTINUOUS 1004
#define IDC_COMBO1 1005
#define IDC_STATIC6 1006
#define IDC_STATIC7 1007
#define IDC_STATIC8 1008
#define IDC_STATIC9 1009
#define IDC_EDIT1 1010
#define IDC_EDIT2 1011
#define IDC_BUTTON1 1012
#define IDS_FAILURE 57345
#define IDS_ERR_BUF 57346
#define IDS_DEVICE_FAILURE 57347
#define IDS_READ_PENDING 57348
#define IDS_READ_CANCELLED 57349
#define IDS_READY 57350
#define IDS_INACTIVE 57351
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 105
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1014
#define _APS_NEXT_SYMED_VALUE 106
#endif
#endif