原创 Visual C++編譯器常用選項設置總結

【文章摘要】 Microsoft Visual C++是微軟公司推出的、在Windows下的可視化集成編程系統,也是廣大軟件工程師使用得比較多的一款編程軟件。本文主要講述Visual C++編譯器常用的選項設置,爲大家全面掌握該軟件

原创 windows程序運行機制

一.字符集的編碼 對字符集的編碼可以使用8位和16位進行編碼,ASCII編碼使用了一個字節進行編碼,Unicode用兩個字節進行編碼,最多可以表示65536個字符;ASCII碼當初的設計只是針對美國英語設計的。對於其他國家而言,一個字節最

原创 初識stm32的GPIO

stm32端口有8中工作模式,4中輸入(上拉、下拉、浮空、模擬輸入),4中輸出(開漏、推免、開漏複用、推免複用),具體8中工作模式區別可以參考博文:http://blog.csdn.net/lpp0900320123/article/de

原创 串口中怎樣接收一個完整數據包的解析

這裏以串口作爲傳輸媒介,介紹下怎樣來發送接收一個完整的數據包。過程涉及到封包與解包。設計一個良好的包傳輸機制很有利於數據傳輸的穩定性以及正確性。串口只是一種傳輸媒介,這種包機制同時也可以用於SPI,I2C的總線下的數據傳輸。在單片機通信系

原创 InvalidateRect()與Invalidate()的用法

BOOL InvalidateRect(   HWND hWnd,           // 窗口句柄   CONST RECT* lpRect,   // 矩形區域   BOOL bErase            //是否擦

原创 VC基於MSCOMM控件串口通訊

在mfc中進行串口通訊最簡單的方法莫過於在對話框中使用MSCOMM控件了,MSComm通信控件提供了一系列標準通信命令的接口,它允許建立串口連接,可以連接到其他通信設備(如Modem).還可以發送命令、進行數據交換以及監視和響應在通信過

原创 wm_paint 消息詳細解析

WM_PAINT是Windows窗口系統中一條重要的消息, 應用程序通過處理該消息實現在窗口上的繪製工作。 1. 系統何時發送WM_PAINT消息?    系統會在多個不同的時機發送WM_PAINT消息:當第一次創建一個窗

原创 MFC使用picture控件實現指示燈的歷程

1、 首先應引入兩個圖標,一個代表燈亮(屬性爲 ICON_ON ) , 一個代表燈滅(屬性爲 ICON_NOT)。(圖標屬性默認爲 IDI_ICON1 、 IDI_ICON2 等,可自行修改) 2、 添加圖標句柄變量 例如:       

原创 MFC TeeChart用法整理 四(保存圖片)

TeeChart可以保存多鍾格式的圖片,bmp、jpeg、pdf、gif等,對於這些功能的定義在CExport類中聲明。我們打開CExport類,看看它的成員函數有那些: void CopyToClipboardBitmap();

原创 VC防止窗口和控件閃爍的方法

1、將Invalidate()替換爲InvalidateRect()  Invalidate()會導致整個窗口的圖象重畫,需要的時間比較長,而InvalidateRect()僅僅重畫Rect區域內的內容,所以所需時間會少一些。蟲蟲以前很懶

原创 寫給準備參加秋招的學弟學妹們

一、前言         好久沒寫blog了,可能工作比較忙的原因吧。工作之後也略顯疲憊,有點懶,不是很願意動筆。不過由於今年秋招的臨近,於是決定整理一下自己和其他幾個大牛的經驗,指導一下自己的學弟學妹們。         首

原创 MFC TeeChart 用法整理二 (畫二維圖)

 畫圖需要添加序列,添加序列有兩種方式。 1、右擊控件選擇Properties,在TeeChart Pro Editor選項卡中單擊Edit Chart,就可以在打開的對話框中編輯TeeChart控件的屬性,如下圖。 單擊Ad

原创 MFC TeeChart用法整理 三(三維圖)

畫三維圖,就要添加三維類型的序列。         這裏我們仍然以折線圖作爲範例。右擊控件選擇Properties,在TeeChart Pro Editor選項卡中單擊Edit Chart,在彈出來的對話框中單擊Add,在3D選項卡

原创 WinMain函數參數介紹

WinMain函數的定義 WinMain函數的原型聲明如下: int WINAPI WinMain(     HINSTANCE hInstance,         // handle to current instance     H

原创 C++primer 第九章:順序容器----字符串

練習9.43:編寫一個函數,接受三個string參數s,oldVal 和 NewVal。使用迭代器及insert 和 erase 函數將s中所有的oldVal 替換成newVal; 一.想法 1. 使用循環遍歷s,並查找s中是否包含old