Microsoft KB Archive/68865

{|
 * width="100%"|

Setting _settextcolor to Zero Gives Unexpected Results

 * }

Q68865

5.10 6.00 6.00a 6.00ax 7.00 | 1.00 MS-DOS | WINDOWS kbprg -- The information in this article applies to: - The C Run-time (CRT), included with: - Microsoft C for MS-DOS, versions 5.1, 6.0, 6.0a, and 6.0ax - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C/C++ for Windows, version 1.0 -- SUMMARY ======= When in a graphics mode, using the function _settextcolor, _setcolor, or outgtext with an argument of &quot;0&quot; to select black does not work as expected. For example, the code below sets the background color to _WHITE, sets the text color to 0 (Black), and tries to print text to the screen. In this example, the resultant foreground and background colors are the same. Remember that _setbkcolor sets the color for index 0. When _settextcolor is called with the same index, nothing will seem to appear because the _setbkcolor function resets color index 0 to the new color. When _settextcolor is called with index 0, the foreground and background colors are the same, and therefore, nothing appears on the screen. To work around the problem, just call _remappallette to move the desired color off index 0. The comments in the following code illustrate this: Sample Code --- #include #include #include void main { _setvideomode(_MAXRESMODE); // _remappalette(1,0); // Uncomment for the workaround. _setbkcolor(_WHITE); _settextcolor(0); // _settextcolor(1); // Uncomment for the workaround. _outtext(&quot;mystring&quot;); getch; _setvideomode(_DEFAULTMODE); } Additional reference words: kbinf 5.10 6.00 6.00a 6.00ax 7.00 1.00 KBCategory: kbprg KBSubcategory: CRTIss GraphicsIss

Keywords : kb16bitonly

Issue type :

Technology : kbVCsearch kbAudDeveloper kbCRT