Time of Update: 2017-02-27
在VB中,如果要列印列印A4文檔,且內容是從DB中,或者DataGrid中等動態擷取的,實現起來非常簡 單,諸如以下代碼(rs表示一記錄集): rs.MoveFirst Printer.PaperSize = vbPRPSA4 Printer.Orientation = vbPRORPortrait Printer.FontName = "Courier New" Printer.FontBold = True Printer.FontSize =
Time of Update: 2017-02-27
引用(reference)是一個現有對象的別名。用對象來初始化引用之後,那麼對象的名字或引用的名字都可以用於指向(refer to)該對象:int a = 12;int &ra = a;--ra; // a == 11;a = 10; // ra = 10;int *ip = &ra;人們常常會將引用和指標相混淆,原因大概在於C++編譯器通常採用指標的方式實現引用,但引用其實不是指標,其行為和指標並不相同。在引用和指標之間存在三大區別:其一,不存在Null 參考(NULL
Time of Update: 2017-02-27
對STL(Standard Template Library)的簡短描述並不足以體現其設計上的過人之處,接下來的文字不過是鼓勵你深入學習STL的“開胃小菜”。STL並不僅僅是一個庫,它更是一種優秀的思想以及一套約定。
Time of Update: 2017-02-27
對於任何還不熟悉設計模式的人來說,在對這個領域進行簡短的縱覽之後,可能會留下這樣的印象:設計模式是一個市場營銷大騙局,它不過是一些簡單的編程技術,或者不過是電腦科學家的玩物。儘管這些印象都有那麼一點道理,然而設計模式的確是職業C++程式員工具箱中不可或缺的組件。設計模式是一個被反覆談論的架構主題。它為特定上下文中的常見設計問題提供瞭解決方案,並描述了這種解決方案的結果。設計模式不僅僅是對技術的簡單描述,它還是從現有的成功實踐一點一滴彙集起來的設計智慧的具名封裝,並以窬交流和複用的方式編寫而成。模
Time of Update: 2017-02-27
多態(Polymorphism)在一些編程教程中被弄得很神秘,而在另外一些教程中則被忽略,其實它不過是C++語言所支援的一個簡單而有用的概念。按照C++標準所言,"多態類型(Polymorphic type)”就是帶有虛函數的類類型。從設計的角度來看,"多態對象(Polymorphic object)"就是一個具有不止一種類型的對象,而"多態基類(Polymorphic base
Time of Update: 2017-02-27
C#中對DatagridView部分常用操作只列出技巧部分,後面會有補充0(最基本的技巧). 擷取某列中的某行(某儲存格)中的內容this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position;bookContent = this.database.dataSet.Tables[0].Rows
Time of Update: 2017-02-27
這兩天協助其它項目組Review代碼,發現有些地方實現了IDispose介面,同時也發現了一些關於IDispose的問題:1.A類型實現了IDispose介面,B類型裡面含有A類型的欄位,B類型沒有實現IDispose介面2.一個類裡面實現了Finalize終結器,同時也實現了IDispose介面,但在Dispose方法裡面沒有調用GC.SuppressFinalize(this)方法.下面我對以上兩個問題分別分析一下,並提出解決方案。問題1如果A類型裡面有非託管資源需要在實現的IDispose
Time of Update: 2017-02-27
前言C#使用內建的庫(Excel 11.0/5.0 Object Library)操作Excel一直以來都有些問題,最嚴重的要數有 時候Excel進程結束不掉這個問題,操作起來也不是很方便。其實Excel用得稍熟點的朋友就知道Excel可 以匯出為html格式的檔案,我想說到這裡大家應該大致明白本文的意圖了,下面我為大家做一個範例。環境1. Microsoft Office Excel 2003本文一、目的從資料庫匯出資料到Excel中並鎖定部分資料不讓修改。這裡以學產生績表為例, 學生編號、
Time of Update: 2017-02-27
本篇繼續介紹Google Earth COM API開發的基礎知識,相對第三篇的改進如下:1)增加滑鼠滾輪支援,可以實現放大、縮小。此功能利用上一篇提供的HookAPI.dll實現2)讀取PlaceMarks(Google Earth介面中的位置)並顯示、隱藏3)讀取所有圖層,顯示並隱藏下面,繼續放代碼:1、滑鼠滾輪事件,實現放大、縮小1: ...2: // 放大3: private const long ZoomIn = 0x00780000;4: // 縮小5: private const
Time of Update: 2017-02-27
好久沒有更新《C#調用Google Earth Com API開發》系列文章了,今天帶給大家的是第三篇,本篇相 對於第二篇主要改進了三個方面。1) 實現GoogleEarth顯示畫面隨視窗大小改變而改變2) 截獲GoogleEarth滑鼠訊息,實現單擊、雙擊功能;滑鼠滾輪縮放現在只能放大!O(∩_∩)O~3) 實現GoogleEarth彩色截圖(測試環境:Windows 2003 Server
Time of Update: 2017-02-27
繼《C#調用GoogleEarth Com API開發(一)》,我Neil又帶給大家第二篇文章。這一篇文章在第一篇 的基礎上,展示如何調用Windows API將GoogleEarth的介面隱藏掉,並將GoogleEarth的地圖顯示在自定 義的表單上。廢話少說,直接上代碼。1、主視窗代碼:1: // 功能:GE執行個體(二)2: // 描述:GE COM API 網址:http://earth.google.com/comapi/index.html3: // 作者:溫偉鵬4: // 日期:2
Time of Update: 2017-02-27
在.Net Framework 2.0 中添加了System.IO.Compression 類來實現對檔案的壓縮/解壓(GZipStream方法),下面我們來看一個簡單的例子.Code1:1 public static void Compress(string filePath, string zipPath) 2 { 3 FileStream sourceFile = File.OpenRead(filePath); 4 FileStream
Time of Update: 2017-02-27
看到這個題目,是不是很眼熟?在部落格園裡搜下,保證會發現關於這個東東的文章實在是太多了~~~真得是沒有寫得必要,而且我也有點懶得去琢磨字句。(看到這,肯定得來個轉折的了,不然就看不到下文了,不是嗎)但是,為了自己下一篇要寫的文章做參考,還是有必要先補充一下socket基礎知識。注意:如果你已經接觸過socket,那就沒什麼必要耽誤時間看下去了。另外,如果發現其中任何錯誤,歡迎直接指出。1.按慣例先來介紹下socketWindows中的很多東西都是從Unix領域借鑒過來的,Socket也是一樣。在
Time of Update: 2017-02-27
在N久之前,我發過一個繪製曲線的文章 先發個繪製曲線圖的:用ASP.NET with C# 繪製曲線圖 (Curve圖) 裡面介紹了簡單的繪製曲線圖的方法.近來重新翻閱了這篇文章.心情大好之下又重新修改了 一下繪製方法,增加自動適應資料的處理和可以根據傳入的資料繪製多條曲線照例先上圖:比以前Cool吧?呵呵,其實就是根據資料自動計算邊距和字型等./// <summary> /// 自動根據參數調整映像大小 /// </summary>
Time of Update: 2017-02-27
最近學習設計模式,對於抽象工廠很是難以理解,就到網上查看一番,碰到一哥們寫的文章,比喻很 貼切,也算是讓我明白了大概。下面是轉載他寫的文章。他的地址我忘了,很久了。最近整理了一下發到部落格上來。一直覺得設計模式是非常抽象的(事實上MS也是。。。),所以就想把它說的白話點兒,讓人更容易 理解。關於抽象工廠(Abstract Factory)模式,網上一個非常流行的例子,麥當勞和肯德基的故事。具體怎 麼說的我已經忘了,但是我想自己描述一遍,希望能讓自己加深對設計模式思想的理解,也希望對大家有
Time of Update: 2017-02-27
驗證碼在很多需要使用者登陸或發表言論的網頁上都可以見到。傳統的一般是用代表各種不同數字或字 符的圖片來進行組合,從而實現效果。但是,很明顯這種方式的靈活性不高,而且需要準備大量的圖片作 素材。目前,一般就是採用全自動產生,整個驗證碼為一張圖片,而不是多張圖片的組合。在.Net中,可以 通過GDI+來實現,可能你會覺得很麻煩,但只要跟著我操作一遍,你就會發現其實很簡單。現在,就開始製作一個最簡單的驗證碼。 (這裡並不介紹如何使用GDI+技術,相關內容請大家查看
Time of Update: 2017-02-27
關於自動更新,在.NET下面已經是很普通的事情,無非就是在伺服器端儲存配置好要更新的程式,然後客 戶端再寫一個小程式來檢測,有更新的則複製過來.就這麼個思路,這麼個簡單的問題還要佔一篇首頁?但你 可別急,看看我的標題,再慢慢的看下去,或許哪一天,你可能還真的會用得著呢,就算用不著,相信對各位回 頭溫習一下久違的Command也是不錯呀!利用ShareDevelop的ICSharpCode.Core實現了一個外掛程式應用程式,這兩天想要弄個自動更新,將更新功
Time of Update: 2017-02-27
簡介我們如何在不同的情境下使用這些方法來實現Undo/Redo。這些方法是使用單個對象表示變化,命令模 式和備忘錄模式。正如我們所知,Undo/Redo沒有通用的解決方案,而Undo/Redo在每個應用程式中非常具體。處於這個 原因,在該系列文章的開始部分,將討論如何使用該方法建模任意的應用程式,然後展示一個簡單應用程 序的實現。關於Undo/Redo實現的基本思想正如我們所知,應用程式在每次操作後改變其狀態。當操作應用程式時,它的狀態會發生改變。所以
Time of Update: 2017-02-27
總結起來,兩者共有如下區別:1、結構是實值型別,類則是參考型別。因此前者是放在棧(Stack)裡,後者則僅僅是將引用地址存放在棧裡,而具體的值則存放在堆(heap)裡。如下圖所示:2、據第1點可以得出結論,那就是類對象通常用來傳遞大資料,而結構對象則用來傳遞小資料。3、類可以被繼承,而結構則不支援。4、結構對象不能像類對象一樣賦值為null。5、結構不能像類一樣定義析構器。6、結構不能像類一樣定義為抽象的。7、在結構中不能重寫方法,除非是object類型的如下方法:Equals()GetHash
Time of Update: 2017-02-27
在網上看了很多程式(QQ、Azureus、Ants、PPStream)都實現了p2p,以前覺得技術很高深。通過這 段時間的學習才發現,單純的實現p2p在區域網路通訊很容易,但是要實現外網穿透(NAT)感覺很困難。最近 看了Azureus和emule源碼,分別是JAVA和C++版,本人對這兩門語言都不熟悉,看起來很吃力。最後只好 根據VC++實現的P2PDemo程式進行了改版,根據設計思路用c#寫了一個Demo出來。通過測試,多個用戶端