代码整理1

原创 2015年07月10日 09:16:20

一、添加库以及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;
}










C++ Gui Qt4 1~3章代码整理

  • 2013年07月22日 10:03
  • 86KB
  • 下载

MongoDB-JAVA-Driver 3.2版本常用代码全整理(1) - 增删改

MongoDB的3.x版本java驱动相对2.x做了全新的设计,类库和使用方法上有很大区别。例如用Document替换BasicDBObject、通过Builders类构建Bson替代直接输入$命令等...
  • autfish
  • autfish
  • 2016年05月09日 23:06
  • 8555

纯js脚本1k大小的3D玫瑰_个人整理的代码(源码)

今天看到了CSDN的报道3D玫瑰,真牛。本人把代码整理了下,保存成了HTML,等到情人节那天就可以发出去了(呵呵),不过要浏览器支持HMTL5才行。     分享代码: JS1...
  • trgree
  • trgree
  • 2012年02月11日 19:10
  • 687

1.android:整理出15个Android很有用的代码片段(技巧)

1:查看是否有存储卡插入 String status=Environment.getExternalStorageState(); if(status.equals(Enviroment.MEDI...

《第一行代码》复习遗漏重难点整理1-2章

1.1Android系统架构 Android的系统架构大致可以分为四层架构,5层区域 四层架构:Linux内核层,系统运行库层(库层,运行时库),应用框架(API),应用层 五大区域(Linux...

leetcode 题解代码整理 1-5题

Two Sum Given an array of integers, find two numbers such that they add up to a specific target...

新手必备的常用 Android 代码片段整理(1)

以下内容来自多个开源项目的整理和自己的项目积累 1.收集设备信息,用于信息统计分析 Java ...

常用代码整理 (转 1)

1.判断邮箱格式是否正确的代码//利用正则表达式验证-(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-...

MongoDB 3.2版本常用代码全整理(1) - 增删改

原文地址MongoDB的3.x版本Java驱动相对2.x做了全新的设计,类库和使用方法上有很大区别。例如用Document替换BasicDBObject、通过Builders类构建Bson替代直接输入...

MongoDB-JAVA-Driver 3.2版本常用代码全整理(1) - 增删改

MongoDB的3.x版本java驱动相对2.x做了全新的设计,类库和使用方法上有很大区别。例如用Document替换BasicDBObject、通过Builders类构建Bson替代直接输入$命令等...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代码整理1
举报原因:
原因补充:

(最多只允许输入30个字)