VC++中添加了RichEdit控件无法显示对话框解决方法
BOOL CDlgApp::InitInstance()
{
AfxInitRichEdit();//添加该函数
}
*********************************************************************************************
m_listctrl_ChatMembers.SetExtendedStyle ///listctrl的风格设定函数(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_TRACKSELECT);
外部程序调用:WinExec("d://gnugk//bin//gnugk.exe -ttt" ,0); //0后台运行 1 前台运行
**********************************************************************************************
用进程快照杀死进程:
void CTextkillDlg::OnButton1()
{
// TODO: Add your control notification handler code here
//#include <tlhelp32.h> ///在前面添加该头函数
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
return ;
}
PROCESSENTRY32 pe32 = {0};
pe32.dwSize = sizeof(PROCESSENTRY32);
// 遍历拍下来的所有进程
if (Process32First(hProcessSnap, &pe32))
{
do
{
if (pe32.th32ProcessID && pe32.dwSize<=sizeof(PROCESSENTRY32))
{
CString s;
s.Format("%s",pe32.szExeFile);
if(!s.Compare("gnugk.exe"))
{
HANDLE hd;
hd=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);
if(hd!=NULL) TerminateProcess(hd,1);
}
}
} while (Process32Next(hProcessSnap, &pe32));
}
CloseHandle(hProcessSnap);
}
***********************************************************************************************
VC中如何给标题栏添加控件(单文档或多文档窗口)
1、先建立工程文件。在资源视图的Dialog栏,右键,Insert..... 在出的资源中,展开Dialog树。选择第一个对话框资源IDD_DIALOGBAR,在点新建。资源的ID是IDD_DIALOGBAR。
2、在MainFrm.h中的析构函数virtual ~CMainFrame();前添加CDialogBar m_wndDialogBar;
3、在MainFrm.cpp中的int CMainFrame::OnCreate的return 0;之前添加代码
m_wndDialogBar.Create(this,IDD_DIALOGBAR,CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC,IDD_DIALOGBAR);
m_wndDialogBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndDialogBar);
*********************************************************************************************
ActiveSkin 4.3在VC++6.0的使用
(不断补充完善,请留意本站更新)
1、A simple dialog-based application.
先在对话框中加入皮肤控件:对话框右键Inser ActiveX Control->ActiveSkin4.3控件
控件出来后,在控件右键,加载皮肤,找到皮肤文件(*.skn)加载进去。
在stdafx.h文件的//{{AFX_INSERT_LOCATION}}之前加代码:
#import "actskn43.ocx" no_implementation raw_interfaces_only raw_native_types
using namespace ACTIVESKINLib;
#include "atlbase.h"
然后在**Dlg.cpp中的OnInitDialog()的return之前加
CComQIPtr<ISkin> pSkin = GetDlgItem(IDC_SKIN1)->GetControlUnknown();
//pSkin->ApplySkin((long)m_hWnd);//标准皮肤
pSkin->ApplySkinByName((long)m_hWnd,L"Skin_Object_Name");//自由皮肤
然后编译运行即可见皮肤效果
皮肤事件触发处理
打开ClassWizard,对皮肤控件的Click事件添加消息处理函数OnClickSkin 。
对OnClickSkin 函数添加代码:
CComBSTR bstrName; // Name of the SkinObject that has generated Click event
CComQIPtr<ISkinObject> pSkinObject = Source; // Get this SkinObject
pSkinObject->GetName(&bstrName); // Get its name
USES_CONVERSION;
MessageBox(W2T(bstrName)); // Convert its name to multibyte and display it in message box.
MessageBox将自由皮肤上的伪控件对象名返回,我们可以根据名字判断用户对皮肤进行的鼠标点击操作我们从而可以根据不同的操作进行不同的处理。
2、MDI or SDI applications