关闭

代码整理1

标签: C++MFC
151人阅读 评论(0) 收藏 举报
分类:

一、添加库以及DLL调用

#pragma comment(lib,".\\sqlite3.lib")

_declspec(dllexport) void StartHook(HWND hWnd);
_declspec(dllexport) void StopHook();


二、重载按钮图片

CBitmapButton m_OK;//确定
DDX_Control(pDX, IDC_BUTTON1, m_OK);

m_OK.LoadBitmaps(IDB_OK);


三、设置界面字体

CFont *my_font = new CFont();

set_font(18, my_font_funpanel, (LPCWSTR)"宋体");

CStatic* m_pStatic = (CStatic*)GetDlgItem(IDC_STATIC);
m_pStatic->SetFont(my_font);
void set_font(int height, CFont *font, LPCWSTR name)
{
    // font=new CFont();//不在此,要在外部初始化,否则找不到指针
    LOGFONT lf;
    lf.lfHeight = 20;         lf.lfWidth = 0;
    lf.lfEscapement = 0;   lf.lfOrientation = 0;
    lf.lfWeight = 760;     lf.lfItalic = 0;
    lf.lfUnderline = 0;     lf.lfStrikeOut = 0;
    lf.lfCharSet = 134; lf.lfOutPrecision = 3;
    lf.lfClipPrecision = 2; lf.lfQuality = 1;
    lf.lfPitchAndFamily = 2; lstrcpy(lf.lfFaceName, (LPCWSTR)"宋体");
    lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;//OUT_TT_PRECIS;

    lf.lfHeight = height;  //字体大小
    lstrcpy(lf.lfFaceName, name);//名称
    if (font != NULL)
    {
        font->DeleteObject();
        font->CreateFontIndirect(&lf);
    }
}


四、判断按钮
HWND hWndChild = hwnd;

        if (hWndChild == NULL)
            return true;
        CWnd* pwnd1 = CWnd::FromHandle(hWndChild);
        if (pwnd1 == NULL)
            return true;
        CWnd* pwnd = pwnd1->GetParent();

        if (FromHandle((HWND)wParam)->GetParent() == pwnd
            && pwnd->GetDlgItem(GetWindowLong(hWndChild, GWL_ID)) == FromHandle((HWND)wParam))//确定


五、字符转换

WCHAR stra[512];
            CWnd* pWnd = CWnd::FromHandle(edithwnd);
            pWnd->SendMessage(WM_GETTEXT, 1024, (LPARAM)(LPCTSTR)stra);
            CString str(stra);
            str.TrimRight();
            int len = str.GetLength();
            char *buffer = new char[len + 1];
            memset(buffer, 0, len + 1);
            WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)str, -1, NULL, 0, NULL, FALSE);
            WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)str, -1, (LPSTR)buffer, len, NULL, FALSE);
            buffer[len] = '\0';


六、SQLITE相关操作

sqlite3 *db = NULL;
            int rc;
            //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
            rc = sqlite3_open("cnpc.db", &db);
            if (rc)
            {
                AfxMessageBox(L"can not open the db");
                sqlite3_close(db);

            }

char *buffer = new char[len + 1];

char *mysql = " ";

mysql = sqlite3_mprintf("select type, money from GOOD where num='%s'", buffer);

//mysql = sqlite3_mprintf("INSERT INTO epay (epay_type, amount,order_id,pos_total,epay_time) VALUES ('5',%f,%s,%f,datetime('now','+8 hour'));", size1, chRtn, size);
//sqlite3_exec(db, mysql, 0, 0, NULL);

int a = sqlite3_exec(db, mysql, UserResult, 0, NULL);//回调函数 static int UserResult(void *NotUsed, int argc, char **argv, char **azColName)
                if (a != SQLITE_OK)
                {
                    return true;
                }

//三表联合查询 select a.epay_type,a.acount,a.asum,b.count,a.csum from ( select a.epay_type, sum(a.amount) asum, count(1) acount, sum(c.ssum) csum from epay a left join tillpmnt_crdt_trl b on a.order_id = rtrim(b.cardnum) left join tillpmnt c on b.sernum = c.sernum group by epay_type) a left join(select a.epay_type, count(1) count from epay a, tillpmnt_crdt_trl b, tillpmnt c where a.order_id = rtrim(b.cardnum) and b.sernum = c.sernum group by epay_type) b on a.epay_type = b.epay_type order by a.epay_type

七、SetTimer的使用

#define GETPOSMONEY_BUTTON    0x1
SetTimer(GETPOSMONEY_BUTTON, 1000, NULL);

ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);//任务栏上面不显示图标

void OnTimer(UINT_PTR nIDEvent)

{
       if (nIDEvent == GETPOSMONEY_BUTTON)
        {
           

        }
 }


八、获取句柄

HWND GetTfrmKeyboardNumericHWndEdit1(HWND hWnd)
{
    int i = 0;
    HWND hWndChild = ::GetWindow(hWnd, GW_CHILD);
    while (hWndChild)
    {
        WCHAR buf[512];
        WCHAR bufs[512];
        ::GetClassNameW(hWndChild, bufs, 512);//得到枚举的控件是什么类型的,
        ::GetWindowText(hWndChild, buf, 512);// 得到枚举的控件的标题是什么
        CString str(buf);
        str.TrimRight();
        CString strs = bufs;
        strs.TrimRight();

        if (strs == "****")
        {
            EDIT[i] = hWndChild;
            i++;
        }
        if (strs == "*****")
        {
            enterbutton = ::GetWindow(hWndChild, GW_CHILD);
        }
        HWND h = GetTfrmKeyboardNumericHWndEdit1(hWndChild);
        if (h != NULL) return h;
        hWndChild = ::GetWindow(hWndChild, GW_HWNDNEXT);
    }
    return NULL;
}










0
0
猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1146次
    • 积分:33
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档