ธงชาติรวมทั้งเพลงชาติ ไม่ใช่ธรรมเนียมดั้งเดิมของไทย แต่ก่อนเราไม่เข้าใจความหมายของ “ธงชาติ” เสียด้วยซ้ำ เห็นเขาเอาธงมาติดกันก็เอามาติดบ้าง ไม่รู้ว่ามีความสำคัญแต่ไหน ครั้งหนึ่งในสมัยสมเด็จพระนารายณ์ เรือรบฝรั่งเศสเข้ามาเจริญพระราชไมตรี เมื่อถึงปากน้ำเจ้าพระยา นายเรือได้ถามว่าเมื่อเรือผ่านป้อมวิชเยนทร์ที่บางกอก จะขอยิงสลุตให้สยามตามประเพณีของชาวยุโรปได้หรือไม่ เมื่อนำความกราบบังคมทูลไปยังกรุงศรีอยุธยา สมเด็จพระนารายณ์ทรงอนุญาต และรับสั่งให้ทางป้อมยิงสลุตตอบด้วย
ตามประเพณีนี้ที่ป้อมก็จะต้องชักธงชาติไว้ด้วย แต่ตอนนั้นไทยเรายังไม่มีธงชาติ ทั้งยังไม่เข้าใจความหมายของธงชาติ จึงไปคว้าเอาธงฮอลันดามาชักขึ้นเสา ตอนนั้นฮอลันดากับฝรั่งเศสกำลังรบชิงความเป็นใหญ่ในย่านตะวันออกกัน พอมาเห็นธงคู่ต่อสู้ปลิวไสวเหนือป้อม เลยไม่ยอมยิงสลุตให้ บอกว่าให้เอาธงฮอลันดาลงเสียก่อน แล้วชักธงอะไรก็ได้ขึ้นไปแทน ฝ่ายไทยจึงคว้าเอาผ้าแดงมาฉีกเป็นผืนสี่เหลี่ยมชักขึ้นไป ฝรั่งเศสจึงยอมยิงสลุต จากนั้นไทยก็ยึดเอาผ้าแดงเป็นธงชาติตลอดมา
อีกคราว เป็นเรื่องชักธงแบบไม่รู้ความหมายอีกเหมือนกัน มีบันทึกของสังฆราชฝรั่งเศสที่เข้ามาเฝ้าสมเด็จพระนารายณ์ครั้งแรก หลังจากที่เข้าเฝ้าแล้ววันรุ่งขึ้นท่านสังฆราชได้ไปเยี่ยมเยีอนอัครมหาเสนาบดี คือเจ้าพระยาวิชเยนทร์ เพื่อขอบใจในการที่ได้จัดที่พักและเอื้อเฟื้อต่างๆให้ วิชเยนทร์จึงถือโอกาสขอความช่วยเหลือจากท่านสังฆราช ให้มีหนังสือถึงผู้บังคับการเรือฝรั่งเศสให้ช่วยดูแลเรือสินค้าของไทยด้วย เพราะก่อนหน้านี้นมีเรือสินค้าของพระเจ้าแผ่นดินลำหนึ่ง ไปถูกเรือรบฝรั่งเศสยิงจนเสากระโดงหักที่เปอร์เซีย เพราะเรือไทยไปชักธงฮอลันดาเข้า ขณะะฝรั่งเศสกับฮอลันดากำลังรบกันย่านนั้น
ไม่ทราบว่าท่านสังฆราชจะหัวเราะหรือเปล่าที่ได้รับคำขอให้ช่วยเรื่องนี้ แต่ตามบันทึกกล่าวว่าท่านตอบรับจะทำให้ตามที่ขอด้วยความยินดี
ตั้งแต่ยุคสมเด็จพระนารยณ์มหาราชเป็นต้นมา เรือสินค้าไทยได้ใช้ธงแดงเป็นเครื่องหมายมาตลอด แม้ว่าขณะนั้นเรือมลายูก็ใช้ธงแดงเหมือนกัน จนถึงสมัยพระบาทสมเด็จพระพุทธยอดฟ้าจุฬาโลก ทรงพระราชดำริว่า เรือหลวงควรจะมีความแตกต่างไปจากเรือราษฎร จึงมีพระบรมราชโองการให้ทำรูปจักร สัญลักษณ์ของราชวงศ์จักรี ประดิษฐานไว้กลางธงบนพื้นแดงด้วย
ต่อมาในรัชกาลที่ ๒ พระบาทสมเด็จพระพุทธเลิศหล้านภาลัยได้ช้างเผือกมาถึง ๓ เชือก จึงโปรดฯให้นำรูปช้างเผือกลงไว้กลางวงจักรในธงอีกอย่าง ส่วนสำเภาค้าอื่นๆก็ยังคงใช้ธงแดงกันต่อไป
ต่อมาในรัชกาลที่ ๔ ทรงพระราชดำริว่าสยามควรจะมีธงชาติที่ใช้ทั่วไปทั้งเรือหลวงและเรือพ่อค้าทั้งหลาย แต่การนำสัญลักษณ์ของราชวงศ์มาใช้ไม่สมควร จึงโปรดฯให้เอารูปจักรออก เหลือแต่ช้างเผือกยืนอยู่กลางธงเด่น
ในรัชกาลที่ ๕ จึงทรงพระกรุณาโปรดเกล้าฯให้ตราพระราชบัญญัติธงฉบับแรกของสยามขึ้นเมื่อวันที่ ๒๕ มีนาคม ร.ศ.๑๑๐ หรือ พ.ศ.๒๔๓๔ กำหนดให้ “ธงชาติสยาม” เป็นรูปช้างเผือกอยู่บนพื้นสีแดง ใช้กับเรือพ่อค้าวาณิชทั่วไป ส่วนเรือหลวงเป็นรูปช้างเผือกยืนอยู่บนแท่น ที่มุมธงด้านบนมีรูปจักร ใช้สำหรับเรือพระที่นั่ง
จนในสมัยรัชกาลที่ ๖ พระบาทสมเด็จพระมงกุฎเกล้าเจ้าอยู่หัวจึงออกประกาศ “พระราชบัญญัติแก้ไขพระราชบัญญัติธง พระพุทธศักราช ๒๔๖๐” เมื่อวันที่ ๒๘ กันยายน ๒๔๖๐ มีข้อความในมาตรา ๓ ว่า
“มาตรา ๓ ได้กำหนดลักษณะของธงชาติสยามไว้ว่า มีรูปสี่เหลี่ยมรี มีขนาดกว้าง ๒ ส่วน ยาว ๓ ส่วน มีแถบสีน้ำเงินแก่กว้าง ๑ ใน ๓ ส่วน ของขนาดความกว้างของธงอยู่ตรงกลาง มีแถบขาวกว้าง ๑ ใน ๖ ส่วน ของขนาดกว้างของธง ข้างละแถบขนาบสีน้ำเงิน แล้วจึงเป็นแถบสีแดงกว้างเท่ากับแถบสีขาว ประกบอยู่ที่ชั้นนอกอีกข้างละแถบ และกำหนดให้เรียกธงชาติสยามที่กำหนดขึ้นใหม่นี้ว่า “ธงไตรรงค์” ให้ใช้ชักในเรือพ่อค้าวานิช และในสถานที่ต่างๆของสาธารณชนบรรดาที่เป็นชาติสยามโดยทั่วไป”
นี่ก็คือความเป็นมาของธงชาติไทย กว่าจะเป็นธงไตรรงค์ในวันนี้