一起学习 代码审计、安全开发、web攻防、逆向等。。。
私信联系
服务启动 ---- 注销 模式 可以自动启动服务 上线
操作系统:Windows 7
编译器:VS2008
https://www.cctry.com/
client.rc 中添加资源
文件 退出
选项 配置
关于 关于我们
相关代码
.h 头文件中创建
private:
CToolBar m_toolbar; //工具条类
CImageList m_imagelist; // 图像列表
CStatusBar m_statusbar;
CBitmap m_subbmp[6];
CImageList m_mainicon;
void UpdateMain(int port);
UINT m_port;
UINT m_max;
UINT m_Sound;
public:
CListCtrl m_list;
五个重载方法
第一个 注意 参数 无符号整形
查询 MSDN
宏 定义 id号 对应 资源
rc的代码
· id 号
· 资源类型
· 具体路径
void 你的Dlg::UpdateMain(int port)
{
// 创建图像列表
m_imagelist.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
CBitmap bmp;
// 创建位图对象
for(int i=0;i<8;i++)
{
// 通过 id 依次导入位图
bmp.LoadBitmapW(IDB_BITMAP1+i);
// 将真彩色255 位图 添加进 image列表
m_imagelist.Add(&bmp,RGB(255,255,255));
bmp.DeleteObject();
// 释放资源
}
/*
m_bmp[0].LoadBitmap(IDB_MENU_EXIT);
m_bmp[1].LoadBitmap(IDB_MENU_SETTING);
m_bmp[2].LoadBitmap(IDB_MENU_ABOUT);
m_subbmp[0].LoadBitmapW(IDB_MENU_AGENT);
m_subbmp[1].LoadBitmapW(IDB_MENU_SHUTDOWN);
m_subbmp[2].LoadBitmapW(IDB_MENU_RESTART);
m_subbmp[3].LoadBitmapW(IDB_MENU_UPDATE);
m_subbmp[4].LoadBitmapW(IDB_MENU_HTTP);
m_subbmp[5].LoadBitmapW(IDB_MENU_RUN);
GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION, &m_bmp[0], &m_bmp[0]);
GetMenu()->GetSubMenu(1)->SetMenuItemBitmaps(0,MF_BYPOSITION, &m_bmp[1], &m_bmp[1]);
GetMenu()->GetSubMenu(2)->SetMenuItemBitmaps(0,MF_BYPOSITION, &m_bmp[2], &m_bmp[2]);
*/
// 工具栏的设定
// 包含九个元素[按钮ID]的 无符号整形 常量 数组 0为竖线
const UINT t[9] = {1001,1002,1003,1004,1005,1006,0,1007,1008};
// 用于单击事件的触发
// 指向this 指针 主对话框
m_toolbar.CreateEx(this);
// id数组 数量
m_toolbar.SetButtons(t,9);
// 按钮 图标 设置大小
m_toolbar.SetSizes(CSize(60,56),CSize(24,24));
m_toolbar.SetButtonText(0,_T("文件管理"));
m_toolbar.SetButtonText(1,_T("屏幕监控"));
m_toolbar.SetButtonText(2,_T("超级终端"));
m_toolbar.SetButtonText(3,_T("进程管理"));
m_toolbar.SetButtonText(4,_T("视频监控"));
m_toolbar.SetButtonText(5,_T("卸载主机"));
m_toolbar.SetButtonText(7,_T("程序设置"));
m_toolbar.SetButtonText(8,_T("关于软件"));
//关联 imagelist GetToolBarCtrl()获取指针 设置图像列表
m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);
// 状态栏设置
BOOL hbar = m_statusbar.Create(this);
UINT b[2]={1009,1010};
hbar = m_statusbar.SetIndicators(b,2);
// 关联状态栏 id 按钮id 风格 长度
m_statusbar.SetPaneInfo(0,b[0],SBPS_NORMAL,400);
m_statusbar.SetPaneInfo(1,b[1],SBPS_NORMAL,180);
CString ListemPort;
ListemPort.Format(_T("监听端口:%d"),port);
m_statusbar.SetPaneText(0,ListemPort);
m_statusbar.SetPaneText(1,_T("在线主机:0 台"));
// 重设 工具条
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
/*
m_mainicon.Create(16,16,ILC_COLOR24|ILC_MASK,1,0);
m_mainicon.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_USER)));
m_mainicon.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_CAM)));
m_list.SetImageList(&m_mainicon,LVSIL_SMALL);
*/
// 重新 设置列表框 拓展风格 整行选中 报表 复选框
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
// 插入条目
m_list.InsertColumn(0,_T("地理位置"),LVCFMT_LEFT,160);
m_list.InsertColumn(1,_T("IP地址"),LVCFMT_LEFT,110);
m_list.InsertColumn(2,_T("操作系统"),LVCFMT_LEFT,90);
m_list.InsertColumn(3,_T("代理状态"),LVCFMT_LEFT,60);
m_list.InsertColumn(4,_T("服务端版本号"),LVCFMT_LEFT,100);
GetClientRect(&m_rect);
}
有些东西需要注释掉
BOOL CExecN0vvDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)
{
int nVirtKey = (int)pMsg->wParam;
if(nVirtKey==VK_RETURN || nVirtKey==VK_ESCAPE)
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
判断 传入的无符号整形的参数 是否为 WM_KEYDOWN
按键消息
等于回车 或者 ESC 截断