我做了一个界面想添加工具栏 但是填完之后程序没错误 就是点运行之后没有反应
如果重新建一个工程 添加工具栏的话 就没有这种问题
所以我重做了一个 很浪费时间
但是添加完之后我想给按钮添加响应函数 程序没错误 就是不能运行
如果还是重建一个工程直接添加工具栏 再添加响应函数就能运行
所以我觉得不是程序代码的问题 但是真的不知道是怎么回事 因为东西太多 实在不想重做了 哪位大侠明白的帮帮忙
如果重新建一个工程 添加工具栏的话 就没有这种问题
所以我重做了一个 很浪费时间
但是添加完之后我想给按钮添加响应函数 程序没错误 就是不能运行
如果还是重建一个工程直接添加工具栏 再添加响应函数就能运行
所以我觉得不是程序代码的问题 但是真的不知道是怎么回事 因为东西太多 实在不想重做了 哪位大侠明白的帮帮忙
解决方案 »
- 如果一个struct中,内嵌一个MFC的类成员,如何使用操作符new分配内存?
- 封装VLC的.dll文件生成ActiveX控件用于网页实时视频播放
- 根据对象如何判断子类的类型
- [交友]MFC的程序用QT写界面,感兴趣的朋友进(顺便散分)!!
- 配置ODBC的自定义类CSetODBC,支持多种数据库
- 里面有线程组类源代码,类的析构函数执行完毕后进入汇编代码,我玩命跟,dword ptr [ecx+4],eax出现错误,什么意思,怎么解决。.
- 如何判断vc6.0是否已经安装sp5
- 在VC中怎么使用CDataGrid控件(在线等待)
- CDialogBar上按钮的灰化问题!
- 这个问题真是简单死了,但搞得我莫名其妙的(关于CRichEdit)
- 高手 数据采集中 什么是以查询方式读取A/D数据
- VC 如何实现百度输入时,下拉字符匹配的提示功能
//{{AFX_MSG_MAP(CLianchangDlg)
ON_COMMAND(ID_catalysis_DIALOG, Oncatalysis_DIALOG)
ON_COMMAND(ID_crude_process, Oncrude_process)
ON_COMMAND(ID_coking, Oncoking)
ON_COMMAND(IDD_MYTAB_DIALOG, OnMyTab)
ON_COMMAND(ID_crude_sell_plan, Oncrude_sell_plan)
ON_COMMAND(ID_device_DIALOG, Ondevice_DIALOG)
ON_COMMAND(ID_distillation, Ondistillation)
ON_COMMAND(ID_importoil, Onimportoil)
ON_COMMAND(ID_jianjie, Onjianjie)
ON_COMMAND(ID_log_DIALOG, Onlog_DIALOG)
ON_COMMAND(IDD_month, Onmonth)
ON_COMMAND(ID_month_produce_plan, Onmonth_produce_plan)
ON_COMMAND(ID_oil_one, Onoil_one)
ON_COMMAND(ID_oil_two, Onoil_two)
ON_COMMAND(ID_oil_tank, Onoil_tank)
ON_COMMAND(ID_others, Onothers)
ON_COMMAND(ID_quarter_plan, Onquarter_plan)
ON_COMMAND(ID_year_plan, Onyear_plan)
ON_COMMAND(ID_year_produce_plan, Onyear_produce_plan)
ON_COMMAND(ID_ABOUTBOX, OnABOUTBOX)
ON_COMMAND(IDD_chart, Onchart)
ON_COMMAND(IDD_youhua, Onyouhua)
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)
ON_BN_CLICKED(1001, Onyear_plan)
ON_BN_CLICKED(1002, Onquarter_plan)
ON_BN_CLICKED(1003, Onmonth)
ON_BN_CLICKED(1004, Ondistillation)
ON_BN_CLICKED(1005, Oncatalysis_DIALOG)
ON_BN_CLICKED(1006, Oncoking)
ON_BN_CLICKED(1007, Oncrude_sell_plan)
ON_BN_CLICKED(1008, Ondevice_DIALOG)
ON_BN_CLICKED(1009, Onimportoil) //}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CLianchangDlg message handlersBOOL CLianchangDlg::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
/* UINT array[5];
for (int i = 0;i <5;i++)
{
array[i] = 100+i;
}
m_statusbar.Create(this); m_statusbar.SetIndicators(array,sizeof(array)/sizeof(UINT)); for (int n = 0; n<5;n++)
{
m_statusbar.SetPaneInfo(n,array[n],0,120);
}
m_statusbar.SetPaneInfo(4,array[4],0,800); m_statusbar.SetPaneText(0,"当前用户");
m_statusbar.SetPaneText(1,"mrkj");
m_statusbar.SetPaneText(2,"当前进度"); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); RECT m_rect;
m_statusbar.GetItemRect(3,&m_rect);//获取第四个面板的区域
m_progress.SetParent(&m_statusbar);//设置进度条的父窗口为状态栏
m_progress.MoveWindow(&m_rect);//设置进度条显示的位置 m_progress.SetPos(60);*/
//登录
Cdenglu dlg;
if(dlg.DoModal() != IDOK)
{
OnOK();
}
CLianchangDlg::OnMyToolBar();
return TRUE; // return TRUE unless you set the focus to a control
}
BOOL CLianchangDlg::OnMyToolBar()
{
//工具栏
m_imagelist.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON9)); UINT array[9];
for (int i = 0;i<9;i++)
{
array[i]=i+1001;
}
m_toolbar.Create(this);
m_toolbar.SetButtons(array,9);
m_toolbar.SetButtonText(0,"年计划");
m_toolbar.SetButtonText(1,"季度计划");
m_toolbar.SetButtonText(2,"月计划");
m_toolbar.SetButtonText(3,"蒸馏工艺图");
m_toolbar.SetButtonText(4,"催化裂化");
m_toolbar.SetButtonText(5,"焦化工艺图");
m_toolbar.SetButtonText(6,"原油信息");
m_toolbar.SetButtonText(7,"装置信息");
m_toolbar.SetButtonText(8,"原油采购"); m_toolbar.GetToolBarCtrl().SetButtonWidth(10,20); m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist); m_toolbar.SetSizes(CSize(70,53),CSize(28,33)); m_toolbar.EnableToolTips(TRUE); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
return true;
}void CLianchangDlg::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 CLianchangDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
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; // Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}}// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CLianchangDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}void CLianchangDlg::Oncatalysis_DIALOG()
{
CCatalysis catalysis;
catalysis.DoModal();
}
void CLianchangDlg::Oncrude_process()
{
Ccrudeprocess crude_process;
crude_process.DoModal();
}
void CLianchangDlg::Oncoking()
{
Ccoking coking;
coking.DoModal();
}
void CLianchangDlg::OnMyTab()
{
CMyTab MyTab;
MyTab.DoModal();
}
void CLianchangDlg::Oncrude_sell_plan()
{
Ccrudesell crude_sell_plan;
crude_sell_plan.DoModal();
}
void CLianchangDlg::Ondevice_DIALOG()
{
CDevice device_DIALOG;
device_DIALOG.DoModal();
}
void CLianchangDlg::Ondistillation()
{
Cdistillation distillation;
distillation.DoModal();
}
void CLianchangDlg::Onimportoil()
{
Cimportoil importoil;
importoil.DoModal();
}
void CLianchangDlg::Onjianjie()
{
Cjianjie jianjie;
jianjie.DoModal();
}
void CLianchangDlg::Onlog_DIALOG()
{
Clog log_DIALOG;
log_DIALOG.DoModal();
}
void CLianchangDlg::Onmonth()
{
month month;
month.DoModal();
}
void CLianchangDlg::Onmonth_produce_plan()
{
Cmonthplan month_produce_plan;
month_produce_plan.DoModal();
}
void CLianchangDlg::Onoil_one()
{
Coilone oil_one;
oil_one.DoModal();
}
void CLianchangDlg::Onoil_two()
{
Coilplan oil_two;
oil_two.DoModal();
}
void CLianchangDlg::Onoil_tank()
{
Coiltank oil_tank;
oil_tank.DoModal();
}
void CLianchangDlg::Onothers()
{
Cothers others;
others.DoModal();
}
void CLianchangDlg::Onyear_plan()
{
Cyearplan year_plan;
year_plan.DoModal();
}
void CLianchangDlg::Onquarter_plan()
{
Cquaterplan quarter_plan;
quarter_plan.DoModal();
}
void CLianchangDlg::Onyear_produce_plan()
{
Cyearproduceplan year_produce_plan;
year_produce_plan.DoModal();
}
void CLianchangDlg::OnABOUTBOX()
{
CAboutDlg ABOUTBOX;
ABOUTBOX.DoModal();
}
void CLianchangDlg::Onchart()
{
chart Chart;
Chart.DoModal();
}
void CLianchangDlg::Onyouhua()
{
youhua youhua;
youhua.DoModal();
}
BOOL CLianchangDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if(nID)
{
nID = m_toolbar.CommandToIndex(nID);
if (nID != -1)
{
m_toolbar.GetButtonText(nID,str);//获取工具栏文本
pTTT->lpszText = str.GetBuffer(str.GetLength()); //设置提示信息文本
pTTT->hinst = AfxGetResourceHandle();
return(TRUE);
}
}
return(false);
}添加完红色的地方就出现问题
2,去Resource.h中手动删除所有该控件的痕迹
3,清理解决方案(删除Debug下的东西)
4,最后删除 你的程序.ncb然后打开工程,添加你需要的控件和相应函数。重新运行,如果还出现你所说的问题的话,那100%是你的代码有错误,仔细检查代码吧!