社区
界面
帖子详情
关于BN_CLICKED消息
xiang1358
2004-11-22 11:57:24
我在一个Static Text上加上了BN_CLICKED消息,但是在程序运行的时候我点击这个Static Text却不响应这个消息,是怎么回事????
...全文
217
6
打赏
收藏
关于BN_CLICKED消息
我在一个Static Text上加上了BN_CLICKED消息,但是在程序运行的时候我点击这个Static Text却不响应这个消息,是怎么回事????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
李马
2004-11-22
打赏
举报
回复
还需要为其设置Notify属性
老夏Max
2004-11-22
打赏
举报
回复
修改其ID为其他的就可以了
老夏Max
2004-11-22
打赏
举报
回复
不能使用默认的IDC_STATIC!
mengqimxz
2004-11-22
打赏
举报
回复
跟踪程序看进去了没有啊
xiang1358
2004-11-22
打赏
举报
回复
谢了
BinaryTreeEx
2004-11-22
打赏
举报
回复
我刚做过,将Notify设置为true。
MFC简易计算器程序
ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_
BN
_
CLI
CKE
D(IDC_BUTTON1, OnButton1) ON_
BN
_
CLI
CKE
D(IDC_BUTTON2, OnButton2) ON_
BN
_
CLI
CKE
D(IDC_BUTTON3, OnButton3) ON_
BN
_
CLI
CKE
D(IDC_BUTTON4, OnButton4) ON_
BN
_
CLI
CKE
D(IDC_BUTTON10, OnButton10) ON_
BN
_
CLI
CKE
D(IDC_BUTTON5, OnButton5) ON_
BN
_
CLI
CKE
D(IDC_BUTTON6, OnButton6) ON_
BN
_
CLI
CKE
D(IDC_BUTTON7, OnButton7) ON_
BN
_
CLI
CKE
D(IDC_BUTTON8, OnButton8) ON_
BN
_
CLI
CKE
D(IDC_BUTTON9, OnButton9) ON_
BN
_
CLI
CKE
D(IDC_CHEAR, OnChear) ON_
BN
_
CLI
CKE
D(IDC_CHENG, OnCheng) ON_
BN
_
CLI
CKE
D(IDC_DIV, OnDiv) ON_
BN
_
CLI
CKE
D(IDC_RESULT, OnResult) ON_
BN
_
CLI
CKE
D(IDC_SUB, OnSub) ON_
BN
_
CLI
CKE
D(IDC_ADD, OnAdd)
visual c++ 课程设计餐厅管理系统源程序
void CDeskPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDeskPage) DDX_Control(pDX, IDC_COMBO_FREE, m_cbFree); DDX_Control(pDX, IDC_LIST_DISP, m_listDisp); DDX_Text(pDX, IDC_EDIT_NUM, m_strNum); DDX_Text(pDX, IDC_EDIT_DESC, m_strDesc); DDX_Text(pDX, IDC_EDIT_CODE, m_strCode); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDeskPage, CPropertyPage) //{{AFX_MSG_MAP(CDeskPage) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_ADD, OnButtonAdd) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_MODIFY, OnButtonModify) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_DEL, OnButtonDel) ON_NOTIFY(NM_
CLI
CK, IDC_LIST_DISP, On
Cli
ckListDisp) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_CLEAR, OnButtonClear) //}}AFX_MSG_MAP END_MESSAGE_MAP()
用C++做的记事本程序
#include "stdafx.h" #include "Diary.h" #include "AllDiary.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAllDiary dialog CAllDiary::CAllDiary(CWnd* pParent /*=NULL*/) : CDialog(CAllDiary::IDD, pParent) { //{{AFX_DATA_INIT(CAllDiary) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CAllDiary::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAllDiary) DDX_Control(pDX, IDC_LIST_DIARY, m_list); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAllDiary, CDialog) //{{AFX_MSG_MAP(CAllDiary) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_DEL, OnButtonDel) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_REMOVEALL, OnButtonRemoveall) ON_
BN
_
CLI
CKE
D(ID_CANCEL, OnCancel) //}}AFX_MSG_MAP END_MESSAGE_MAP()
房地管理系统.rar
// ADDAreaDlg.cpp : 实现文件 // #include "stdafx.h" #include "House.h" #include "ADDAreaDlg.h" #include ".\addareadlg.h" // CADDAreaDlg 对话框 IMPLEMENT_DYNAMIC(CADDAreaDlg, CDialog) CADDAreaDlg::CADDAreaDlg(CWnd* pParent /*=NULL*/) : CDialog(CADDAreaDlg::IDD, pParent) , m_Name(_T("")) { m_pDB = NULL; } CADDAreaDlg::~CADDAreaDlg() { } void CADDAreaDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST_AREA, m_AreaList); DDX_Text(pDX, IDC_EDIT_NAME, m_Name); } BEGIN_MESSAGE_MAP(CADDAreaDlg, CDialog) ON_
BN
_
CLI
CKE
D(IDOK, On
Bn
Cli
cke
dOk) ON_
BN
_
CLI
CKE
D(IDCANCEL, On
Bn
Cli
cke
dCancel) END_MESSAGE_MAP() // CADDAreaDlg
消息
处理程序 void CADDAreaDlg::On
Bn
Cli
cke
dCancel() { OnCancel(); } void CADDAreaDlg::SetDB( CDaoDatabase *pDB ) { m_pDB = pDB; }
简易的播放器
基于DirectSound的简易播放器 #include "stdafx.h" #include "test.h" #include "testDlg.h" #include "process.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation 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 dialog CtestDlg::CtestDlg(CWnd* pParent /*=NULL*/) : CDialog(CtestDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CtestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CtestDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_
BN
_
CLI
CKE
D(IDC_BUTTON_OPEN, &CtestDlg::On
Bn
Cli
cke
dButtonOpen) ON_
BN
_
CLI
CKE
D(IDC_BUTTON_PLAY, &CtestDlg::On
Bn
Cli
cke
dButtonPlay) ON_WM_DESTROY() ON_
BN
_
CLI
CKE
D(IDC_BUTTON_STOP, &CtestDlg::On
Bn
Cli
cke
dButtonStop) END_MESSAGE_MAP() //ON_
BN
_
CLI
CKE
D(IDC_Sound_Play, OnSound2) //ON_
BN
_
CLI
CKE
D(IDC_Sound_stop, OnSound1) //ON_
BN
_
CLI
CKE
D(IDC_sound_pause, OnBothSounds) //ON_WM_DESTROY() //ON_
BN
_
CLI
CKE
D(IDC_BUTTON_Slow, OnBUTTONSlow) //ON_
BN
_
CLI
CKE
D(IDC_BUTTON_Fast, OnBUTTONFast) //ON_
BN
_
CLI
CKE
D(IDC_BUTTON_Normal, OnBUTTONNormal) // CtestDlg message handlers BOOL CtestDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. 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); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here m_sndSound1 = new CDirectSound(); if(!m_sndSound1) { exit(-1); } return TRUE; // return TRUE unless you set the focus to a control } void CtestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CtestDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, reinterpret_cast
(dc.GetSafeHdc()), 0); // Center icon in
cli
ent rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; Get
Cli
entRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this function to obtain the cursor to display while the user drags // the minimized window. HCURSOR CtestDlg::OnQueryDragIcon() { return static_cast
(m_hIcon); } //--------------------------------------------------------------------------------- void CtestDlg::On
Bn
Cli
cke
dButtonOpen() { // TODO: Add your control notification handler code here LPCTSTR lpszFilter =L"Wave File(*.wav)|*.wav|All Files|*.*||"; CFileDialog dlg(TRUE,NULL,NULL,/*OFN_HIDEREADONLY |*/ OFN_OVERWRITEPROMPT,lpszFilter); if(dlg.DoModal()==IDOK) { m_soundfile = dlg.GetPathName(); } } // unsigned int WINAPI FileReadProc(LPVOID pOwner) { CtestDlg* pThis = (CtestDlg*)pOwner; pThis->ReadFileProc(); return 1; } // typedef struct _WAVE_FORMAT { WORD AudioFormat; WORD NumChannels; DWORD SampleRate; DWORD ByteRate; WORD BlockAlign; WORD BitsPerSample; }WAVE_FORMAT,*PWAVE_FORMAT; void CtestDlg::On
Bn
Cli
cke
dButtonPlay() { // TODO: Add your control notification handler code here if(m_soundfile.IsEmpty()) { MessageBox(L"请选中播放文件!"); return; } USES_CONVERSION; fp = fopen(W2A(m_soundfile.GetBuffer(m_soundfile.GetLength())),"rb"); if(NULL == fp) { MessageBox(L"打开所所定的播放文件失败,请确认文件是否存在!"); return; } fseek(fp,20,0); //Skip previous 20 bytes RIFF header WAVE_FORMAT waveFormat; int nLen =fread(&waveFormat,1,sizeof(WAVE_FORMAT),fp); AUDIO_CONFIG WaveHead; WaveHead.wFormatTag = 1; WaveHead.nChannels = 2; WaveHead.nSamplesPerSec = 44100; WaveHead.nAvgBytesPerSec = 176400; WaveHead.nBlockAlign = 4; WaveHead.wBitsPerSample = 16; WaveHead.nBlockAlign=waveFormat.BlockAlign; WaveHead.nChannels=waveFormat.NumChannels; WaveHead.nSamplesPerSec=waveFormat.SampleRate; WaveHead.wBitsPerSample=waveFormat.BitsPerSample; WaveHead.nAvgBytesPerSec=waveFormat.ByteRate; m_sndSound1->CreateDSound(&WaveHead,8000); fseek(fp,20+sizeof(WAVE_FORMAT),0); unsigned int dwReadID; m_hThread = (HANDLE)_beginthreadex(0,0,FileReadProc,this,0,&dwReadID); Sleep(200); m_bStop = 0; m_bContine = 1; m_sndSound1->Play(); } void CtestDlg::ReadFileProc() { //BYTE buf[1025]; int n = 0; while(1) { BYTE buf[1025]; int nlen; if(m_bStop) break; nlen = fread(buf,1,1024,fp); if(!nlen) break; while(m_sndSound1->WriteDataToBuf(buf,nlen)==-1) { Sleep(100); } } if(fp) { fclose(fp); fp = NULL; } } void CtestDlg::OnDestroy() { CDialog::OnDestroy(); // TODO: Add your message handler code here m_bStop = 1; On
Bn
Cli
cke
dButtonStop(); if(m_hThread) { WaitForSingleObject(m_hThread,2000); CloseHandle(m_hThread); m_hThread = 0; } if(m_sndSound1) { delete m_sndSound1; m_sndSound1 = NULL; } if(fp) { fclose(fp); fp = NULL; } } void CtestDlg::On
Bn
Cli
cke
dButtonStop() { // TODO: Add your control notification handler code here m_bStop = 1; if(m_hThread) { WaitForSingleObject(m_hThread,2000); CloseHandle(m_hThread); m_hThread = NULL; } m_sndSound1->Stop(); }
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章