首页 > 网名大全 正文
〈QQ带公式的名字〉名字求和公式?

时间:2023-04-10 15:09:44 阅读: 评论: 作者:佚名

工具: vs2013/vs2015/vs2010/VC 6.0 ---编译器

需要的能力:C/C++ 基础 win32/MFC基本框架

首先:创建MFC 对话框程序

C语言C++交流群496926338

C语言C++交流群496926338

喜欢的话关注收藏评论转发一波 比心么么哒!加入我们C语言C++学习交流 壹 496926338群内有大量的项目开发和新手教学视频千人大群等着你来加入。

No.1 为基本控件添加变量去保存要发送的信息

CString m_strF1;

CString m_strF2;

CString m_strF3;

CString m_strF4;

CString m_strF5;

CString m_strF6;

CString m_strF7;

CString m_strF8;

No.2 注册热键

C语言C++交流群496926338

//函数的使用:: 全局的函数--函数调用

//注册F1-F8热键

::RegisterHotKey(m_hWnd, 1001, NULL, VK_F1); //注册热键F1

::RegisterHotKey(m_hWnd, 1002, NULL, VK_F2); //注册热键F1

::RegisterHotKey(m_hWnd, 1003, NULL, VK_F3); //注册热键F1

::RegisterHotKey(m_hWnd, 1004, NULL, VK_F4); //注册热键F1

::RegisterHotKey(m_hWnd, 1005, NULL, VK_F5); //注册热键F1

::RegisterHotKey(m_hWnd, 1006, NULL, VK_F6); //注册热键F1

::RegisterHotKey(m_hWnd, 1007, NULL, VK_F7); //注册热键F1

::RegisterHotKey(m_hWnd, 1008, NULL, VK_F8); //注册热键F1

No.2 处理热键,按键比较多,我就在这里以F1为例

C语言C++交流群496926338

if (nHotKeyId == 1001) //F1 Id 是1001 注册的时候的id

{

//如果编辑框没有内容,没有必要拷贝到剪切板

if ())

return;

//把文字放到剪切板里面去

if (OpenClipboard()) //打开剪切板 成功

{

//清空剪切板

EmptyClipboard();

//分配内存

//char wchat_t

// malloc

// char * p=(char *)malloc(sizeof(char)*n)

//不是从事算法这块/服务器/游戏

TCHAR *buffer = (TCHAR *)GlobalAlloc(GMEM_DDESHARE, m_() + 1);

//绑定内存--让指针指向分配内存的首地址

buffer = (TCHAR *)GlobalLock(buffer);

//复制到buffer ------- 字符串复制 strcpy

strcpy(buffer, m_()); //如果报错,改为宽字节编码

//这里报错了,要你使用_s 系列 _getch _kbhit scanf_s

//解锁绑定内存

GlobalUnlock(buffer);

//指定数据按照指定格式放到剪切板

SetClipboardData(CF_TEXT, buffer); //CF_TEXT 代表数据样式 :Edit数据

//关闭剪切板

CloseClipboard();

}

//模拟按键 ---keybd_event() 模拟

/*

录制视频 +源码+笔记

不发软妹币

*/

//按F1 实现Ctr+v的功能

keybd_event(VK_CONTROL, 0, 0, 0); //按下ctrl

keybd_event(_T('V'), 0, 0, 0); //按下v键

//释放

keybd_event(_T('V'), 0, KEYEVENTF_KEYUP, 0); //构造函数+析构函数的顺序相反

keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

return;

}

No.3 当你写完的时候,你发现好像不能换行,这时候我们处理换行的问题

//多行输入 ------按下Enter 实现 \r\n

注意是:处理按键是修改消息函数:PreTranslatemessage(MSG* pMsg)

if ((WM_KEYFIRST <= pMsg->message) && (pMsg->message <= WM_KEYLAST))

{

//通用消息,和专用消息 : 高四位 低四位

if (pMsg->wParam == VK_RETURN) //按键消息等于Enter

{

HWND hWnd = ::GetFocus(); //获取当前鼠标所在窗口的句柄

int iID = ::GetDlgCtrlID(hWnd); //获取这个控件 的ID

if (iID == IDC_EDIT1) //判断是否是第一个编辑

{

//在原来的数据前面加\r\n;

CString sData;

(); //清空sData

int lenData = 0; //初始化长度

GetDlgItemText(IDC_EDIT1, sData); //获取编辑框中内容

sData += "\r\n";

SetDlgItemTextA(IDC_EDIT1, sData); //结果显示在编辑框

lenData = ();

((CEdit*)GetDlgItem((IDC_EDIT1)))->SetSel(lenData, lenData);

}

}

No.4 文件操作

第一步:初始化的文件操作

Cfile file1;

if (!("1.txt", CFile::modeRead))

{

m_strF1 = "strF1";

}

else{

char pBuffer[256] = { 0 };

(pBuffer, 256);

m_strF1 = pBuffer;

();

}

第二步:修改内容后的操作,需要为控件添加控件事件

void CMyCopyToolDlg::OnEnChangeEdit1()

{

UpdateData(TRUE);

CFile file;

if ("1.txt", CFile::modeWrite | CFile::modeCreate))

{

(m_strF1, m_());

();

}

}

好了到这里,一个完美的聊天助手已经诞生,要注意是上面都是以第一个编辑框为例,所以代码你得重复8次哈哈。

  • 评论列表

发表评论: