Programm start
-
guten morgen
ich habe folgendes problem: in einem programm sind 3 checkboxen die jeweils etwas ein bzw ausblenden, wenn man sie anclickt. die erste checkbox ist schon beim programm start true.
das problem ist nun folgendes, wenn ich das programm starte, führt er die funktion für die erste checkbox nicht aus. wie kann ich beim programmstart die funktion für die erste checkbox ausführen lassen.QTEXT
------------------------------------------------------------------------------
// TESTDlg.cpp : Implementierungsdatei
//#include "stdafx.h"
#include "TEST.h"
#include "TESTDlg.h"#ifdef DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE_;
#endifclass CAboutDlg : public CDialog
{
public:
CAboutDlg();enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX);protected:
DECLARE_MESSAGE_MAP()
};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
CTESTDlg::CTESTDlg(CWnd* pParent /=NULL/)
: CDialog(CTESTDlg::IDD, pParent)
{
m_1 = TRUE;
m_2 = FALSE;
m_3 = FALSE;
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}void CTESTDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_CHECK1, m_1);
DDX_Check(pDX, IDC_CHECK2, m_2);
DDX_Check(pDX, IDC_CHECK3, m_3);
}BEGIN_MESSAGE_MAP(CTESTDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
END_MESSAGE_MAP()BOOL CTESTDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);return TRUE;
}void CTESTDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}void CTESTDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this);
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}HCURSOR CTESTDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}void CTESTDlg::OnCheck1()
{
UpdateData(TRUE);
if (m_1 == TRUE)
{
GetDlgItem(IDC_STATIC22)->ShowWindow(FALSE);
GetDlgItem(IDC_STATIC33)->ShowWindow(FALSE);
UpdateData(FALSE);
}
else
{
GetDlgItem(IDC_STATIC22)->ShowWindow(TRUE);
GetDlgItem(IDC_STATIC33)->ShowWindow(TRUE);
UpdateData(FALSE);
}}
void CTESTDlg::OnCheck2()
{
UpdateData(TRUE);
if (m_2 == TRUE)
{
GetDlgItem(IDC_STATIC1)->ShowWindow(FALSE);
GetDlgItem(IDC_STATIC33)->ShowWindow(FALSE);
UpdateData(FALSE);
}
else
{
GetDlgItem(IDC_STATIC1)->ShowWindow(TRUE);
GetDlgItem(IDC_STATIC33)->ShowWindow(TRUE);
UpdateData(FALSE);
}}
void CTESTDlg::OnCheck3()
{
UpdateData(TRUE);
if (m_3 == TRUE)
{
GetDlgItem(IDC_STATIC1)->ShowWindow(FALSE);
GetDlgItem(IDC_STATIC22)->ShowWindow(FALSE);
UpdateData(FALSE);
}
else
{
GetDlgItem(IDC_STATIC1)->ShowWindow(TRUE);
GetDlgItem(IDC_STATIC22)->ShowWindow(TRUE);
UpdateData(FALSE);
}}
[ Dieser Beitrag wurde am 20.09.2002 um 09:56 Uhr von Ghetto-Goffy editiert. ]
-
In OnInitDialog: OnCheck1();
/E: Für ShowWindows brauchst du kein UpdateData(FALSE);
[ Dieser Beitrag wurde am 20.09.2002 um 10:03 Uhr von Nemesyzz editiert. ]
-
ich dank dir für deine schnelle hilfe...